【问题标题】:PySpark: Flag rows of specific columns in df1, that exist in df2?PySpark:在df1中标记df2中存在的特定列的行?
【发布时间】:2021-08-27 22:31:36
【问题描述】:

我正在使用 Pypsark。我有两个数据框,分别称为 df1 和 df2。我希望 df1 创建一个新列来标记 df1 的列 (A、B) 的哪些行存在和不存在于 df2 的列 D、E 中。 1 标记存在,否则为 0。转换的一个例子是:

df1

A B C
0 0 1
0 0 1
0 0 1

df2

D E F G
1 2 1 2
0 0 1 2
1 2 1 2

结果 df1

A B C Exist
0 0 1 0
0 0 1 1
0 0 1 0

df1 的焦点列是 A、B,而 df2 的焦点列是 D、E。只有这些列的第二行匹配,因此 df1 将其新创建的存在列标记为 1。 我怎样才能做到这一点?

【问题讨论】:

  • 您可以在您的另一篇类似的帖子中查看我的答案

标签: python dataframe apache-spark pyspark


【解决方案1】:

df1.createOrReplaceTempView("table1")

df2.createOrReplaceTempView("table2")

spark.sql("select a,b,c, case when d is null and e is null then 0 else 1 end from table1 left external join table2 on A=D and B=E").show()

【讨论】:

  • 可以给代码吗?我不知道如何将 sql() 中的内容翻译成 PySPark 代码。
  • 以上是pyspark代码,可以在pyspark里面调用spark.sql。在你的 pyspark 窗口中运行它会起作用
猜你喜欢
  • 2020-08-10
  • 2019-07-06
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 2013-12-20
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多