如何使用spark sql检查数组内的每个值?



我希望对数组列进行过滤,检查数组中的每个值是否大于10或小于5,这就像prestocardinality(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的详细信息在这里

最新更新