小编abo*_*ghi的帖子

在 Spark SQL 中使用 ARRAY_CONTAINS 匹配多个值

我可以ARRAY_CONTAINS单独使用函数ARRAY_CONTAINS(array, value1) AND ARRAY_CONTAINS(array, value2)来获得结果。但我不想ARRAY_CONTAINS多次使用。是否有一个函数可以检查数组中同时存在两个值。

** 根据评论更新 **

表包含:id、label、Array[type]、Array[feature]、textual1、numeric1 和 numeric2 列。

查询是:(


SELECT id, label, textual1 
FROM table  
WHERE 
           ARRAY_CONTAINS(type, 'productType1') 
      AND  ARRAY_CONTAINS(feature, 'feature1') 
      AND  ARRAY_CONTAINS(feature, 'feature2') AND  numeric1 > 3) 
UNION (
         SELECT id, label, textual1 
         FROM table  
         WHERE 
                   ARRAY_CONTAINS(type, 'productType1') 
              AND ARRAY_CONTAINS(feature, 'feature1') 
              AND ARRAY_CONTAINS(feature, 'feature3') 
              AND  numeric2 > 4
      ) 

ORDER BY label
Run Code Online (Sandbox Code Playgroud)

hive apache-spark-sql

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache-spark-sql ×1

hive ×1