Как изменить строку на отметку времени в Pyspark? - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь изменить строку на time_stamp в pyspark (Spark версия = 2.3.0) с указанным ниже набором данных и api

Я пробовал с другим разрешением, отличным от переполнения стека, но ничего не помоглоизменить на отметку времени

df:
|Customer|Transaction_Timestamp|Transaction_Base_Point_Value|
+--------+---------------------+----------------------------+
|Cust1   |10/25/2017 1:47      |2000                        |

Попытка 1

df2 = df.select('Customer', 'Transaction_Timestamp','Transaction_Base_Point_Value', unix_timestamp('Transaction_Timestamp', "dd/MM/yy HH:mm") .cast(TimestampType()).alias("Timestamp")).show(1, False)

Попытка 2

df.withColumn('Time', to_timestamp("Transaction_Timestamp", "yyyy_MM_dd hh_mm_ss").cast("Timestamp"))

Попытка 3

change_type= df.withColumn('Timestamp', col='Transaction_Timestamp').cast('timestamp')

Однакосхема выдает следующий вывод

 |-- Timestamp: timestamp (nullable = true)

Мне нужно получить вывод следующим образом, чтобы я мог выполнить другую операцию с отметкой времени

|Customer|Transaction_Timestamp|Transaction_Base_Point_Value|Timestamp|
+--------+---------------------+----------------------------+---------+
|   Cust1|      10/25/2017 1:47|                        2000|     10/25/2017 1:47|

1 Ответ

0 голосов
/ 25 марта 2019

использование to_timestamp от pyspark.sql.functions

.withColumn('Timestamp', to_timestamp('Transaction_Timestamp', 'MM/dd/yyyy hh:mm'))

также было бы неплохо иметь значение дополненного часа не 1:47, а 01:47

...