У меня есть датафрейм с одним из столбцов в качестве эпохи. Я хочу извлечь из него только час и отобразить его в виде отдельного столбца.
Ниже приведен пример кадра данных:
+----------+-------------+
| 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.
Есть ли у вас данные для извлечения часа из эпохи в типе данных Long?