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)=[])]
Мне было интересно, есть ли какой-нибудь прямой способ (кроме простого l oop) использовать эту функцию для удаления нескольких элементов (представленных в списке) из колонка.
Примечание: как указано в jx c, можно использовать метод array_except (). Тем не менее, для моего варианта использования после фильтрации я должен сохранять элементы массива в том же порядке, и когда я тестировал с array_except, порядок не поддерживался.