加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何从字符串中获取日期和时间?

发布时间:2020-12-16 18:58:50 所属栏目:安全 来源:网络整理
导读:我有一个具有以下架构的数据框: root |-- date : string (nullable = true) 该值看起来像201605250000.如何从此字符串中提取日期,小时和毫米? 解决方法 解析字符串: val unix = unix_timestamp($"date","yyyyMMddHHmm").alias("unix") 转换为timestmap:
我有一个具有以下架构的数据框:

root

  |-- date : string (nullable = true)

该值看起来像201605250000.如何从此字符串中提取日期,小时和毫米?

解决方法

解析字符串:

val unix = unix_timestamp($"date","yyyyMMddHHmm").alias("unix")

转换为timestmap:

val ts = unix.cast("timestamp").alias("ts")

到目前为止获取日期:

val dt = ts.cast("date").alias("dt")

使用小时/分钟来获取时间:

val h = hour(ts).alias("h")
val m = minute(ts).alias("m")

例:

import org.apache.spark.sql.functions._

val df = Seq((1L,"201605250000")).toDF("id","date")
df.select($"*",unix,ts,dt,h,m).show

// +---+------------+----------+--------------------+----------+---+---+
// | id|        date|      unix|                  ts|        dt|  h|  m|
// +---+------------+----------+--------------------+----------+---+---+
// |  1|201605250000|1464127200|2016-05-25 00:00:...|2016-05-25|  0|  0|
// +---+------------+----------+--------------------+----------+---+---+

注意:对于1.5使用unix.cast(“double”).cast(“timestamp”)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读