我有一个数据框,其列之一为epochtime。 我只想从中提取一个小时,并将其显示为单独的列。
下面是示例数据框:
+----------+-------------+
| 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")))
数据帧中STIME的数据类型为Long。
是否会导致从Longoch数据类型的时间提取小时?