Pyspark从数组列中删除多个项

2024-06-09 02:46:19 发布

您现在位置:Python中文网/ 问答频道 /正文

pyspark提供了array_remove(column:column,element:Any)函数,该函数在删除所有等于元素的值后返回列。 AIP文件中的示例:

>>> df = spark.createDataFrame([([1, 2, 3, 1, 1],), ([],)], ['data'])
>>> df.select(array_remove(df.data, 1)).collect()
[Row(array_remove(data, 1)=[2, 3]), Row(array_remove(data, 1)=[])]

我想知道是否有任何直接的方法(除了简单for循环)使用这个函数从列中删除多个元素(在列表中提供)

注意:正如jxc所指出的,可以使用array_except()方法。但是,对于我的用例,我需要在过滤后保持数组项的顺序相同,并且当我使用array_进行测试时,没有保持顺序


Tags: 文件方法函数元素dfdata顺序any