Реализовать оператор случая, когда с элементами dict и двумя значениями столбца, вернуть true, если совпадениеPython

Программы на Python
Anonymous
Реализовать оператор случая, когда с элементами dict и двумя значениями столбца, вернуть true, если совпадение

Сообщение Anonymous »

есть ли способ сравнить элементы словаря со значениями двух столбцов в кадре данных?
пример:
dic = [ (a,1),(b,2),(c,3)]
ниже показан кадр данных, input_dataframe имеет только имя, столбец идентификатора
output_dataframe имеет столбец флага. он сравнивает оба столбца a и b, если оба значения присутствуют в элементах dict, в столбце «флаг» возвращается true
Изображение

Я реализовал случай, когда, как показано ниже,

Код: Выделить всё

 df = df.withColumn(
flag,
when(struct(col("a"), col("b")).isin(dic), lit('True'))

.otherwise(lit("False"))
)
но выдает ошибку:

ОШИБКА произошла при проверке: user_dw_pnldetail Ошибка:
[UNSUPPORTED_FEATURE.LITERAL_TYPE] Функция не поддерживается:
Литерал для '[a, 1]' класса java.util.ArrayList. SQLSTATE: 0A000

может кто-нибудь помочь мне исправить ошибку

Вернуться в «Python»