这个问题是来自超级用户的migrated,因为它可以在上个月的Stack Overflow.Migrated上回答。
我想在Pyspark中维护数据框中的行的顺序。有什么方法可以实现这个功能吗?这里我们有行ID,它会给每行给予编号。目前,下面的函数会导致数据框中的行重新排列。
def createRowIdColumn( new_column, position, start_value):
row_count = df.count()
row_ids = spark.range(int(start_value), int(start_value) + row_count, 1).toDF(new_column)
window = Window.orderBy(lit(1))
df_row_ids = row_ids.withColumn("row_num", row_number().over(window) - 1)
df_with_row_num = df.withColumn("row_num", row_number().over(window) - 1)
if position == "Last Column":
result = df_with_row_num.join(df_row_ids, on="row_num").drop("row_num")
else:
result = df_row_ids.join(df_with_row_num, on="row_num").drop("row_num")
return result.orderBy(new_column)
字符串
如果我们能达到这个要求,请告诉我解决方案。
1条答案
按热度按时间ev7lccsx1#
试试这个:
字符串