Предположим, у нас есть список предикатов, которые мы хотели бы построить цепочку фильтров. Когда список предикатов превышает ~ 20, драйвер просто зависает, и задание никогда не отображается в пользовательском интерфейсе spark.
Например:
df = spark.table('test.test')
for predicate in predicates_list:
positive_case = df.filter(predicate)
negative_case = df.filter(~predicate)
#some changes are made to negative and positive case
df = positive_case.union(negative_case)
df.show()
Единственная альтернатива, о которой я могу подумать, - написать все это в функции python и перейти в rdd-страну. Тем не менее, это кажется очень хакерским решением кажущейся тривиальной проблемы.