我希望对数组列进行过滤,检查数组中的每个值是否大于10或小于5,这就像presto
中cardinality(filter(col, x -> x < 5 or x >10)) > 0
的使用一样。是否有可能实现它与纯spark sql?
可以使用forall函数来实现
下面是采样滤波器
df.filter(F.expr("forall(arr, x -> x<5 or x>10)"))
这里我假设arr是数据框df中的列名,其中每个值应该小于5或大于10
forall的详细信息在这里