【问题标题】:Unable to perform join after repartition of pyspark data frame重新分区 pyspark 数据帧后无法执行连接
【发布时间】:2021-03-14 03:04:35
【问题描述】:

我们正在合并两个巨大的文件。

所以我们正在尝试在键列上重新分区 然后我们尝试加入键列。

代码 sn-p

def repartition_df(df,primary_key,partition_value):
    df = df.repartition(partition_value,primary_key)


df_1 = repartition_df(df1,'pk1', 4 )
df_2 = repartition_df(df2,'pk1', 4 )

df3 = df_1.join(df_2,on =  ['pk1'] , how = 'left')

错误信息

An error was encountered:
'NoneType' object has no attribute 'join'
Traceback (most recent call last):
AttributeError: 'NoneType' object has no attribute 'join'

何时生效:

现在,如果我不重新分区并继续加入,它工作正常。

但是从性能的角度来看,我们希望在重新分区后加入

请告诉我,我该怎么做。

【问题讨论】:

  • 你错过了返回,只需在你的函数中返回 df

标签: python amazon-web-services apache-spark pyspark


【解决方案1】:

只需添加 return 语句,您的解决方案就可以正常工作。

def repartition_df(df, primary_key, partition_value):
    df = df.repartition(partition_value, primary_key)
    return df

df_1 = repartition_df(df1, 'pk1', 4)
df_2 = repartition_df(df2, 'pk1', 4)

df3 = df_1.join(df_2, on=['pk1'], how='left')

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多