我想 select 一个数据框中的所有记录,其值 exists/not 存在于另一个数据框中。如何使用 pyspark 数据帧来做到这一点?

I want to select all records from one dataframe where its value exists/not exists in another dataframe. How to do this using pyspark dataframes?

我有两个 pyspark 数据帧。 我想 select 来自 voutdf 的所有记录,其中 "hash" 在 vindf.tx_hash

中不存在

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

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

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

您可以使用 left-anti 加入:

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

左反加入:

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