Skip to main content
 首页 » 编程设计

python之比较两个数组并获得 PySpark 中的差异

2025年05月04日30dudu

我在一个数据框中有两个数组字段。

我需要比较这两个数组,并将差异作为同一数据框中的数组(新列)。

预期输出是:

B 列是 A 列的子集。而且单词在两个数组中的顺序相同。

谁能帮我解决这个问题?

请您参考如下方法:

从 Spark 2.4.0 开始,这可以使用 array_except 轻松解决。 举个例子

from pyspark.sql import functions as F 
 
#example df 
df=sqlContext.createDataFrame(pd.DataFrame(data=[[["hello", "world"],  
["world"]],[["sample", "overflow", "text"], ["sample", "text"]]], columns=["A", "B"])) 
 
 
df=df.withColumn('difference', F.array_except('A', 'B')) 

更多类似的数组操作,我推荐这篇博文 https://www.waitingforcode.com/apache-spark-sql/apache-spark-2.4.0-features-array-higher-order-functions/read