Abi*_*rty 6 hive apache-spark-sql
我可以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)
您的查询可以写成如下 -
SELECT id, label, textual1
FROM table
WHERE ARRAY_CONTAINS(type ,'productType1')
AND ARRAY_CONTAINS(feature ,'feature1')
AND (
( ARRAY_CONTAINS(feature ,'feature2')
AND numeric1 > 3
)
or ( ARRAY_CONTAINS(feature ,'feature3')
AND numeric2 > 4
)
)
ORDER BY label
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13990 次 |
最近记录: |