У меня есть 2 набора данных pyspark:
df_1
name | number <Array>
-------------------------
12 | [1, 2, 3]
-------------------------
34 | [9, 8, 7]
-------------------------
46 | [10]
-------------------------
68 | [2, 88]
-------------------------
df_2
number_to_be_deleted <String>
------------------
1
------------------
2
------------------
10
------------------
Я хотел бы удалить числа df_2
, если они существуют в df_1
. В случае, если массив будет empty
, я изменю его значение на null
.
Я использовал array_remove
df = df_1.select(F.array_remove(df_1.number, df_2.number_to_be_deleted)).collect()
Я получил:
TypeError: ' Объект столбца не может быть вызван в array_remove
Ожидаемый результат:
df_1
name | number <Array>
-------------------------
12 | [3]
-------------------------
34 | [9, 8, 7]
-------------------------
46 | null
-------------------------
68 | [88]
-------------------------
Есть предложения, пожалуйста?
Спасибо