PythonSpark如何创建一个新的列,在数据帧上对现有列进行切片?

2024-05-14 11:11:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要通过在同一数据帧上切片当前列,在数据帧上创建一个新列

start_time:timestamp

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)


Tags: 数据对象方法newtime切片slicestart
1条回答
网友
1楼 · 发布于 2024-05-14 11:11:42

试试这个,应该有用

from pyspark.sql import functions as f
df.withColumn("new_start_time",f.to_date(f.to_timestamp(df.start_time))).show()

相关问题 更多 >

    热门问题