小编Fra*_*u P的帖子

如何从pyspark中的时间戳中提取时间?

我需要使用 pyspark 从时间戳(这是数据帧中的一列)中提取时间。假设这是时间戳 2019-01-03T18:21:39 ,我只想提取时间“18:21:39”,以便它始终以这种方式显示“01:01:01”

df = spark.createDataFrame(["2020-06-17T00:44:30","2020-06-17T06:06:56","2020-06-17T15:04:34"],StringType()).toDF('datetime')

df=df.select(df['datetime'].cast(TimestampType()))
Run Code Online (Sandbox Code Playgroud)

我尝试了如下但没有得到预期的结果

df1=df.withColumn('time',concat(hour(df['datetime']),lit(":"),minute(df['datetime']),lit(":"),second(df['datetime'])))

display(df1)
Run Code Online (Sandbox Code Playgroud)
+-------------------+-------+
|           datetime|   time|
+-------------------+-------+
|2020-06-17 00:44:30|0:44:30|
|2020-06-17 06:06:56| 6:6:56|
|2020-06-17 15:04:34|15:4:34|
+-------------------+-------+
Run Code Online (Sandbox Code Playgroud)

我的结果是这样的6:6:56,但我希望它们是06:06:56

apache-spark apache-spark-sql pyspark

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

pyspark ×1