Преобразование времени в метку времени в Писпарке - PullRequest
1 голос
/ 12 марта 2020

У меня есть df с колонкой, имеющей время эпохи. Тип переменной столбца времени эпохи - строка. Я хочу, чтобы он конвертировался в метку времени. Я использую следующую команду

from pyspark.sql.functions import from_utc_timestamp
df = df.withColumn('start_time',from_unixtime(df.recognition_start_time,'UTC'))
df.select('recognition_start_time').show(10,False)

Но в результате команда дает мне нулевое значение. Какую ошибку я совершаю?

Epoch Time : 1583471040000
Output expected :2020-03-06 05:04:00

1 Ответ

0 голосов
/ 12 марта 2020

В from_unixtime нам нужно указать ожидаемый выходной формат (yyyy-MM-dd hh:mm:ss) и, используя from_utc_timestamp, мы можем преобразовать вывод из ut c в заданный часовой пояс.

Example:

spark.sql("""select from_utc_timestamp(from_unixtime("1583471040000"/1000,"yyyy-MM-dd hh:mm:ss"),"America/Chicago")""").show(false)
+---------------------+
|_c0                  |
+---------------------+
|2020-03-05 05:04:00.0|
+---------------------+
...