将PySpark中的整数列转换为日期
我有一个名为将PySpark中的整数列转换为日期,pyspark,apache-spark-sql,pyspark-dataframes,Pyspark,Apache Spark Sql,Pyspark Dataframes,我有一个名为birth\u date的整数列,格式如下:20141130 我想在PySpark中将其转换为2014-11-30 这会错误地转换日期: .withColumn("birth_date", F.to_date(F.from_unixtime(F.col("birth_date")))) 这给出了一个错误:参数1需要(字符串、日期或时间戳)类型,但“出生日期”是int类型 .withColumn('birth_date', F.to_date(
birth\u date
的整数列,格式如下:20141130
我想在PySpark中将其转换为2014-11-30
这会错误地转换日期:
.withColumn("birth_date", F.to_date(F.from_unixtime(F.col("birth_date"))))
这给出了一个错误:参数1需要(字符串、日期或时间戳)类型,但“出生日期”是int类型
.withColumn('birth_date', F.to_date(F.unix_timestamp(F.col('birth_date'), 'yyyyMMdd').cast('timestamp')))
将其转换为我想要的日期的最佳方法是什么?将
出生日期
列从整数
转换为字符串
,然后将其传递给转换日期
函数:
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|
+----------+