3
有谁知道为什么在加入多个PySpark数据框时使用Python3的functools.reduce()
会导致性能下降,而不是使用for
循环迭代地加入相同的数据框?而这一个没有使用Python的reduce()加入多个PySpark数据框
def join_dataframes(list_of_join_columns, left_df, right_df):
return left_df.join(right_df, on=list_of_join_columns)
joined_df = functools.reduce(
functools.partial(join_dataframes, list_of_join_columns), list_of_dataframes,
)
:
joined_df = list_of_dataframes[0]
joined_df.cache()
for right_df in list_of_dataframes[1:]:
joined_df = joined_df.join(right_df, on=list_of_join_columns)
任何想法将不胜感激具体而言,这给出了一个巨大的减速,接着存储器外的错误。谢谢!