【发布时间】:2019-11-04 16:50:14
【问题描述】:
我有一个数据框,其中一列作为纪元时间。 我只想从中提取小时并将其显示为单独的列。
以下是示例数据框:
+----------+-------------+
| NUM_ID| STIME|
+----------+-------------+
|xxxxxxxx01|1571634285000|
|xxxxxxxx01|1571634299000|
|xxxxxxxx01|1571634311000|
|xxxxxxxx01|1571634316000|
|xxxxxxxx02|1571634318000|
|xxxxxxxx02|1571398176000|
|xxxxxxxx02|1571627596000|
下面是预期的输出。
+----------+-------------+-----+
| NUM_ID| STIME| HOUR|
+----------+-------------+-----+
|xxxxxxxx01|1571634285000| 10 |
|xxxxxxxx01|1571634299000| 10 |
|xxxxxxxx01|1571634311000| 10 |
|xxxxxxxx01|1571634316000| 10 |
|xxxxxxxx02|1571634318000| 10 |
|xxxxxxxx02|1571398176000| 16 |
|xxxxxxxx02|1571627596000| 08 |
我试过了
val test = test1DF.withColumn("TIME", extract HOUR(from_unixtime($"STIME"/1000)))
在
处引发异常<console>:46: error: not found: value extract
尝试如下获取日期格式,即使它不起作用。
val test = test1DF.withColumn("TIME", to_timestamp(from_unixtime(col("STIME")))
dataframe中STIME的数据类型为Long。
是否有任何线索可以从 Long 数据类型的 epochtime 中提取小时?
【问题讨论】:
-
它与
val test = test1DF.withColumn("TIME", hour(from_unixtime($"STIME"/1000)))合作
标签: scala dataframe apache-spark apache-spark-sql