У меня есть метки времени в миллисекундном формате, и мне нужно преобразовать их из системного времени в UTC.В любом случае ... при выполнении искры преобразования сжигают мои миллисекунды и просто показывают их в виде нулей.
Краткий пример:
from pyspark import Row
from pyspark import SparkContext
from pyspark.sql.functions import to_timestamp, date_format
spark = SparkContext.getOrCreate()
test = spark.createDataFrame([Row(timestamp = "2018-03-24 14:37:12,133")])
test_2 = test.withColumn('timestamp_2', to_timestamp('timestamp', 'yyyy-MM-dd HH:mm:ss,SSS'))
test_3 = test_2.withColumn('timestamp_3', date_format('timestamp_2', 'yyyy-MM-dd HH:mm:ss,SSS'))
test_3.write.option('header', True).csv('something')
Это приведет к:
timestamp,timestamp_2,timestamp_3
"2018-03-24 14:37:12,133",2018-03-24T14:37:12.000+01:00,"2018-03-24 14:37:12,000"
Могу ли я как-то сохранить миллисекунды?
Я использую python 3.6.4 и версию 2.3.2 spark.