Я пытаюсь реализовать столбец автоинкремента в DataFrame.Я уже нашел решение, но я хочу знать, есть ли лучший способ сделать это.
Я использую функцию monotonically_increasing_id()
из pyspark.sql.functions
.Проблема с этим в том, что начать с 0, и я хочу, чтобы он начинался с 1.
Итак, я сделал следующее и работает нормально:
(F.monotonically_increasing_id()+1).alias("songplay_id")
dfLog.join(dfSong, (dfSong.artist_name == dfLog.artist) & (dfSong.title == dfLog.song))\
.select((F.monotonically_increasing_id()+1).alias("songplay_id"), \
dfLog.ts.alias("start_time"), dfLog.userId.alias("user_id"), \
dfLog.level, \
dfSong.song_id, \
dfSong.artist_id, \
dfLog.sessionId.alias("session_id"), \
dfLog.location, \
dfLog.userAgent.alias("user_agent"))
Есть ли лучший способ реализовать то, что я пытаюсь сделать?Я думаю, это слишком много работы, чтобы реализовать функцию udf только для этого, или только я?
Спасибо .-