我有一个非常简单的问题,我找不到一个简单的答案:我想将Pyspark数据帧中的列类型从字符串转换为日期,我该怎么做
我尝试了以下方法:
df.withColumn('dates', datetime.strpdate(col('date'), %Y%m%d))
及
df.withColumn('dates', datetime.strpdate(df.date, %Y%m%d))
但在每种情况下,我都会得到以下错误:TypeError:strtime()参数1必须是str,而不是Column。
因此col('date')
和df.date
显然被解释为一列,而不是所持有的字符串。我怎样才能解决这个问题
如果格式为“yyyy-MM-dd”,则可以使用“cast”函数将字符串列转换为日期,或者可以使用“to_date”函数,这是一个更通用的函数,您可以在其中指定输入格式
下面是示例代码
代码
模式输出
显示数据
数据帧输出
有关Spark的DateTime函数的更多信息,请访问以下博客:https://medium.com/expedia-group-tech/deep-dive-into-apache-spark-datetime-functions-b66de737950a
我希望这有帮助
相关问题 更多 >
编程相关推荐