【问题标题】:PySpark Inner Join producing too many rows?PySpark Inner Join 产生太多行?
【发布时间】:2020-12-10 17:10:58
【问题描述】:

我在 Jupyter Notebook 中使用 PySpark。 我正在尝试使用 2 个数据集进行内部连接:一个有 2455 行,另一个超过 100 万行。为什么内部连接会产生这么多行?当然,它的行数应该少于

print(df.count(),len(df.columns))
19725379 90

print(df1.count(),len(df1.columns))
2455 37

df3 = df.join(df1,"ADDRESS1", "inner")
df3.dropDuplicates(subset=['ADDRESS1']).count
print(df3.count(),len(df3.columns))
603050 126

df3 = df.join(df1,"ADDRESS1", "inner")
print(df3.count(),len(df3.columns))
603050 126

【问题讨论】:

    标签: python apache-spark pyspark apache-spark-sql inner-join


    【解决方案1】:

    没必要,举个例子

    df 1 =

    +------+------+
    | t1   | t2   |
    +------+------+
    |    1 | A    |
    |    2 | B    |
    +------+------+
    

    df 2 =

    +------+------+
    | t1   | t3   |
    +------+------+
    |    1 | A2   |
    |    2 | B2   |
    |    3 | C2   |
    |    1 | D2   |
    |    2 | E2   |
    +------+------+
    

    用你的话来说,带有键“t1”的内部连接的长度必须不超过2,但不能:

    关于第一列的内连接将是:

    +------+------+------+
    | t1   | t2   | t3   |
    +------+------+------+
    |    1 | A    | A2   |
    |    1 | A    | D2   |
    |    2 | B    | B2   |
    |    2 | B    | E2   |
    +------+------+------+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 2023-03-27
      • 1970-01-01
      • 2014-03-13
      • 2020-05-07
      • 2011-05-29
      相关资源
      最近更新 更多