我需要通过在同一数据帧上切片当前列在数据帧上创建新列。
开始时间:时间戳记
START_TIME
2017-03-25T13:14:32.000+0000
2018-03-25T13:14:32.000+0000
2019-03-25T13:14:32.000+0000
2020-03-25T13:14:32.000+0000
2021-03-25T13:14:32.000+0000
我的输出应该是这样的
START_TIME NEW_START_TIME
2017-03-25T13:14:32.000+0000 2017-03-25
2018-03-25T13:14:32.000+0000 2018-03-25
2019-03-25T13:14:32.000+0000 2019-03-25
2020-03-25T13:14:32.000+0000 2020-03-25
2021-03-25T13:14:32.000+0000 2021-03-25
我已经尝试了好几件事,但是都没有成功。
tpv = dataset.start_time_example
tpv['new_start_time'] = tpv['start_time'].slice(0,10)
TypeError:“列”对象不可调用
tpv['newstartdate'] = tpv['start_time'].slice.str[:10]
TypeError:startPos和length必须是同一类型。分别获得了类'NoneType'和类'int'。
newstartdate = tpv['start_time'].slice(0,10)
tpv['newstartdate'] = newstartdate
TypeError:“列”对象不可调用
您能帮我吗? (我正在使用python 3)
尝试这个应该可以。
from pyspark.sql import functions as f
df.withColumn("new_start_time",f.to_date(f.to_timestamp(df.start_time))).show()