如何将以下查询转换为与不支持子查询的 Spark 1.6 兼容:
SELECT ne.device_id, sp.device_hostname
FROM `table1` ne INNER JOIN `table2` sp
ON sp.device_hostname =
(SELECT device_hostname FROM `table2`
WHERE device_hostname LIKE
CONCAT(ne.device_id,'%') ORDER BY device_hostname DESC LIMIT 1)
我读过它支持 FROM 中指定的子查询,但不支持 WHERE 但以下也不起作用:
SELECT * FROM (SELECT ne.device_id, sp.device_hostname
FROM `table1` ne INNER JOIN `table2` sp
ON sp.device_hostname =
(SELECT device_hostname FROM `table2`
WHERE device_hostname LIKE
CONCAT(ne.device_id,'%') ORDER BY device_hostname DESC LIMIT 1)) AS TA
我的总体目标是加入两个表,尽管只从 table2 获取最后一条记录。SQL 语句是有效的,但当我在 Spark 的 HiveContext.sql 中使用它们时,我得到一个分析异常。