我有一个栏目是"20130623"格式的,我想把它转换成日-月-年。我在网上看到了很多帖子,包括这里。但是我只得到了一个解决方案,如下所示
from datetime import datetime
df = df2.withColumn("col_name", datetime.utcfromtimestamp(int("col_name")).strftime('%d-%m-%y'))
但是,它抛出了一个错误,输入应该是int type
,not the string type
。我试图在int()
函数的帮助下进行转换。但即使这样似乎也没有帮助。
下面是我在转换时看到的错误
invalid literal for int() with base 10: 'col_name'
我不确定它是将col_name作为字符串,还是将其值作为字符串。请给出建议,如何做到这一点,或者获得所需输出的最佳方法
注意:我不能在我的环境中使用Pandas。
谢谢您。
1条答案
按热度按时间9lowa7mx1#
withColumn()应该使用Spark类型,但不能使用python datetime。
首先使用to_date将字符串解析为日期,然后使用date_format将日期格式化为字符串:
输出:
无论您在
date
列中看到的输出2013-06-23
是什么,它实际上都是日期的默认_string()表示形式。