Python Spark - Как создать новый столбец, нарезая существующий столбец в кадре данных? - PullRequest
1 голос
/ 06 января 2020

Мне нужно создать новый столбец на моем фрейме данных, разделив текущий столбец на том же фрейме.

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: объект 'Column' не может быть вызван

tpv['newstartdate'] = tpv['start_time'].slice.str[:10]

TypeError: startPos и ​​length должны быть одного типа. Получил класс 'NoneType' и класс 'int' соответственно.

newstartdate = tpv['start_time'].slice(0,10)
tpv['newstartdate'] = newstartdate

TypeError: Объект 'Column' не может быть вызван

Не могли бы вы помочь мне в этом? (Я использую python 3)

1 Ответ

1 голос
/ 06 января 2020

Попробуйте, это должно работать.

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