apache-spark - 将标识符保存在 PySpark 中的 exceptAll 中
问题描述
我很好奇是否有一种简单的方法可以在 PySpark 的 exceptALL 命令中保留标识 ID。例如,假设我有两个数据框(DF1,DF2),它们都有一个 ID 列和另一个列“A”。我想保留 DF1 中具有“A”值的行不在 DF2 中,所以基本上我试图将标识符与 exceptAll 的通常输出保持一致。我附上了具有理想输出的图像。
干杯!
解决方案
您可能正在 Spark 中寻找leftanti 加入:
df1 = spark.createDataFrame([
[1, "Dog"],
[2, "Cat"],
[3, "Dog"]
], ["id", "A"])
df2 = spark.createDataFrame([
[4, "Dog"],
[5, "Elmo"]
], ["id", "A"])
df1.join(df2, ["A"], "leftanti").show()
# +---+---+
# | A| id|
# +---+---+
# |Cat| 2|
# +---+---+
推荐阅读
- css - 无法在 Oxygen 中生成的 PDF 输出中的表格单元格内打破一串符号
- c# - 您如何验证从主应用程序启动的应用程序中的令牌是否正确?
- python - 如何根据另一个列表的排序重新排序列表?
- python-3.x - 使用嵌套for循环时,如果嵌套循环中没有项目触发if语句,如何完成动作
- angular - 如何在 rxjs 6.4.0 Angular 中替换 flatMap 和 mergeMap
- r - 如何将过滤后的文件保存在函数中?
- kotlin - 给定列表列表,如何获取单个唯一的项目列表
- c++ - 为什么 std::ostream 在三元运算符中使用时无法编译?
- linkedin - 启用 LinkedIn“客户凭证流”功能
- excel - 删除带有条件格式为红色的单元格的列