У меня есть несколько фреймов данных (всего 24) с одним столбцом.Мне нужно объединить их все в один фрейм данных.Я создал индексы и присоединился с помощью индексов, но все они довольно медленно объединяются (у всех одинаковое количество строк).
Обратите внимание, что я использую Pyspark 2.1
w = Window().orderBy(lit('A'))
df1 = df1.withColumn('Index',row_number().over(w))
df2 = df2.withColumn('Index',row_number().over(w))
joined_df = df1.join(df2,df1.Index=df2.Index,'Inner').drop(df2.Index)
df3 = df3.withColumn('Index',row_number().over(w))
joined_df = joined_df.join(df3,joined_df.Index=df3.Index).drop(df3.Index)
Но по мере роста join_df он становится все медленнее
DF1:
Col1
2
8
18
12
DF2:
Col2
abc
bcd
def
bbc
DF3:
Col3
1.0
2.2
12.1
1.9
ОжидаетсяРезультаты:
join_df:
Col1 Col2 Col3
2 abc 1.0
8 bcd 2.2
18 def 12.1
12 bbc 1.9