#apache-spark #pyspark #apache-spark-sql #timestamp #aws-glue
#apache-spark #pyspark #apache-spark-sql #временная метка #aws-glue
Вопрос:
Я новичок в spark, и я хотел бы получить временные метки в моем DF.
фактические значения контрольных точек
1594976390070
и я хочу :
значения контрольных точек без мс
1594976390070 / 1000
На самом деле я использую этот фрагмент кода для приведения в качестве временной метки:
# Casting dates as Timestamp
for d in dateFields:
df= df.withColumn(d,checkpoint.cast(TimestampType()))
Интересно, как преобразовать ее в простую временную метку.
Ответ №1:
Разделите свой столбец на 1000 и используйте F.from_unixtime
для преобразования в тип метки времени:
import pyspark.sql.functions as F
for d in dateFields:
df = df.withColumn(d,
(checkpoint / F.lit(1000.)).cast('timestamp')
)