【问题标题】:Extracting data from a pyspark dataframe using conditions from other dataframes使用来自其他数据帧的条件从 pyspark 数据帧中提取数据
【发布时间】:2020-02-10 21:02:29
【问题描述】:

我有一个 pysprak 数据框,需要根据以下条件从中提取选定的行 其他 2 个单列数据框。我尝试使用 join 但它太慢了,因为数据很大。 我曾想过在 spark 中使用分区或 lookup(),但我无法实现这些,因为我是 pyspark 的新手。 请建议我如何有效地做到这一点。 以下是示例数据框:

main dataframe:

  df1 = DataFrame({'CID': ['A0', 'A1', 'A2', 'A3'],'Name': ['B7', 'B4', 'B0', 'B3'],'Group':[23,34,45,67]})

conditional dataframes:

  df2 = DataFrame({'CID': ['A4', 'A3', 'A7', 'A8']})

  df3=Dataframe({'Group':[33,42,66,90]})

我尝试加入但效率低。

df1=df1.join(df2,df1.CID==df2.CID)


df1=df1.join(df3,df1.Group==df3.Group)

提前致谢!

【问题讨论】:

    标签: python dataframe hadoop join pyspark


    【解决方案1】:

    我能想到的唯一方法是加入数据框。这里有一些技巧可以提高连接效率 -

    1. 广播 df2 和 df3(如果它们的大小很小)。
    2. 在加入前根据加入键和重新分区对数据帧进行排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      相关资源
      最近更新 更多