我的hive查询挂起,我不知道为什么(使用hadoop 0.20.1,hive 0.9)。
查询:
SELECT
a.field1 FROM table_1 a
LEFT SEMI JOIN
(SELECT DISTINCT(usrId) FROM table_2 b
WHERE soemthing=true ORDER BY rand() limit 1000) random_user_ids
WHERE a.usrId=random_user_ids.usrId
EXPLAIN让我回来了:
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
Stage-3 depends on stages: Stage-2
Stage-0 is a root stage
数据集
观察:
如果您需要更多输入(例如更详细的EXPLAIN信息,更多群集信息),请告诉。
谢谢!
答案 0 :(得分:2)
JOIN条件应包含在 ON 子句中,而不应包含在WHERE子句中。
语法示例:
SELECT a.key, a.val
FROM a LEFT SEMI JOIN b ON (a.key = b.key)