【问题标题】:How to create datetime columns in a pyspark dataframe?如何在 pyspark 数据框中创建日期时间列?
【发布时间】:2021-01-15 22:59:27
【问题描述】:

我有一个如下所示的 pyspark 数据框

    df
    
       year   month   day 
       2017    9       3 
       2015    5      16

我想创建一个datetime 的列,如下所示

    df
    
       year   month   day           date
       2017    9       3    2017-09-03 00:00:00
       2015    5      16    2017-05-16 00:00:00

【问题讨论】:

标签: python pyspark


【解决方案1】:

您可以使用concat_ws 连接并使用to_date 转换为date

from pyspark.sql.functions import *
df = spark.createDataFrame([[2017,9,3 ],[2015,5,16]],['year', 'month','date'])
df = df.withColumn('timestamp',to_date(concat_ws('-', df.year, df.month,df.date)))
df.show()

+----+-----+----+----------+
|year|month|date| timestamp|
+----+-----+----+----------+
|2017|    9|   3|2017-09-03|
|2015|    5|  16|2015-05-16|
+----+-----+----+----------+

架构:

df.printSchema()
root
 |-- year: long (nullable = true)
 |-- month: long (nullable = true)
 |-- date: long (nullable = true)
 |-- timestamp: date (nullable = true)

【讨论】:

  • 在使用这个时出现这个错误 - .DateTimeParseException: Text '2020-7-01' could not be parsed at index 5
猜你喜欢
  • 2016-12-04
  • 2022-06-21
  • 1970-01-01
  • 1970-01-01
  • 2019-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多