我想从一个值是否存在于另一个数据框中的数据框中选择所有记录。如何使用pyspark数据框执行此操作?

时间:2019-12-04 08:50:42

标签: python pyspark pyspark-dataframes semi-join

我有两个pyspark数据框。 我想从voutdf中选择所有记录,其中vindf.tx_hash中不存在其“哈希”

如何使用pyspark数据框执行此操作? 我尝试了半连接,但最终出现内存不足的错误。

voutdf = sqlContext.createDataFrame(voutRDD,["hash", "value","n","pubkey"])

vindf = sqlContext.createDataFrame(vinRDD,["txid", "tx_hash","vout"])

1 个答案:

答案 0 :(得分:0)

您可以通过left-anti连接来实现:

df = voutdf.join(vindf.withColumnRenamed("tx_hash", "hash"), "hash", 'left_anti')

左后方加入:

它从左边的数据集中获取所有在右边的数据集中没有匹配的行。