【发布时间】:2019-03-26 08:00:48
【问题描述】:
我正在尝试通过将 dd/mm/yyyy 替换为 yyyy-mm-dd 来解析 pyspark 中的日期列。
import pyspark.sql.functions as F
spark = SparkSession.builders.appName('test').getOrCreate()
sc = spark.sparkContext
sqlc = pyspark.sql.SQLContext(sc)
df = sqlc.createDataFrame([('01/01/2018','user1'),('28/02/2017','user2')], ['Date','user'])
df.show()
+----------+-----+
| Date| user|
+----------+-----+
|01/01/2018|user1|
|28/02/2017|user2|
+----------+-----+
到目前为止我所做的是:
df.select( F.concat_ws('-',F.split(F.col('Date'),'/')).alias('Date_parsed')).show()
+-----------+
|Date_parsed|
+-----------+
| 01-01-2018|
| 28-02-2017|
+-----------+
我想得到的是:
+-----------+
|Date_parsed|
+-----------+
| 2018-01-01|
| 2017-02-28|
+-----------+
知道如何在不使用 udf 的情况下执行此操作吗?
【问题讨论】:
-
很好,不过,这里还有一个关于更改日期列显示的解析的问题。 Ali Yesilli 给出的函数
to_date完美运行。