我正在尝试使用以下数据集和api将字符串更改为pyspark(Spark版本= 2.3.0)中的time_stamp
我一直在尝试使用与堆栈溢出不同的分辨率,但是没有什么可以帮助更改为time_stamp
df:
|Customer|Transaction_Timestamp|Transaction_Base_Point_Value|
+--------+---------------------+----------------------------+
|Cust1 |10/25/2017 1:47 |2000 |
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)
df.withColumn('Time', to_timestamp("Transaction_Timestamp", "yyyy_MM_dd hh_mm_ss").cast("Timestamp"))
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|
答案 0 :(得分:-1)
使用classes
中的to_timestamp
pyspark.sql.functions
如果不是.withColumn('Timestamp', to_timestamp('Transaction_Timestamp', 'MM/dd/yyyy hh:mm'))
而是1:47