在 PySpark 中将整数列转换为日期
Convert Integer Column to Date in PySpark
我有一个名为 birth_date
的整数列,格式如下:20141130
我想在 PySpark 中将其转换为 2014-11-30
。
这会错误地转换日期:
.withColumn("birth_date", F.to_date(F.from_unixtime(F.col("birth_date"))))
这给出了一个错误:argument 1 requires (string or date or timestamp) type, however, 'birth_date' is of int type
.withColumn('birth_date', F.to_date(F.unix_timestamp(F.col('birth_date'), 'yyyyMMdd').cast('timestamp')))
将其转换为我想要的日期的最佳方法是什么?
将 birth_date
列从 Integer
转换为 String
,然后再将其传递给 to_date
函数:
from pyspark.sql import functions as F
df.withColumn("birth_date", F.to_date(F.col("birth_date").cast("string"), \
'yyyyMMdd')).show()
+----------+
|birth_date|
+----------+
|2014-11-30|
+----------+
我有一个名为 birth_date
的整数列,格式如下:20141130
我想在 PySpark 中将其转换为 2014-11-30
。
这会错误地转换日期:
.withColumn("birth_date", F.to_date(F.from_unixtime(F.col("birth_date"))))
这给出了一个错误:argument 1 requires (string or date or timestamp) type, however, 'birth_date' is of int type
.withColumn('birth_date', F.to_date(F.unix_timestamp(F.col('birth_date'), 'yyyyMMdd').cast('timestamp')))
将其转换为我想要的日期的最佳方法是什么?
将 birth_date
列从 Integer
转换为 String
,然后再将其传递给 to_date
函数:
from pyspark.sql import functions as F
df.withColumn("birth_date", F.to_date(F.col("birth_date").cast("string"), \
'yyyyMMdd')).show()
+----------+
|birth_date|
+----------+
|2014-11-30|
+----------+