У меня есть база данных, в которой я хочу сохранить читаемые строки заданного времени с определенным форматом.Я получаю входной-фрейм данных с временными метками типа timestamp.Для расчетов я конвертирую их в unix-метки времени.Результаты возвращаются в базу данных в виде строки времени в формате строки.Проблема в том, что когда я конвертирую эти строковые метки времени обратно в Unix, у меня возникают несовпадающие значения.
Как это может произойти?
time_format = "YYYY-MM-dd'T'HH:mm:ssz"
dummy = df.withColumn('start_time_unix', f.unix_timestamp('start_time'))\
.withColumn('start_time_string', f.from_unixtime('start_time_unix', format=time_format))\
.withColumn('start_time_unix_2', f.unix_timestamp('start_time_string', format=time_format))
dummy.printSchema()
dummy.show(10, False)
OUTPUT
root
|-- start_time: timestamp (nullable = true)
|-- start_time_unix: long (nullable = true)
|-- start_time_string: string (nullable = true)
|-- start_time_unix_2: long (nullable = true)
+-------------------+---------------+-----------------------+-----------------+
|start_time |start_time_unix|start_time_string |start_time_unix_2|
+-------------------+---------------+-----------------------+-----------------+
|2019-06-04 00:39:08|1559601548 |2019-06-04T00:39:08CEST|1546123148 |
+-------------------+---------------+-----------------------+-----------------+
РЕДАКТИРОВАТЬ
Кадр входных данных сгенерирован в соответствии с:
df = spark.read.csv('data.csv', header=True, inferSchema=True)
С помощьюCSV, содержащий строки, такие как: "2019-06-04 00:39:08" (без ")