在蜂箱(直线)中执行下面的查询时,我没有错误。但是,当使用pyspark从Python执行时,同样的查询会失败,出现下面的错误消息。我如何调优python代码来使用本机单元引擎,而不是pyspark来执行下面的查询?
select count(com_dq), col1 from ( select col1, case when col2 not in (select distinct col3 from hive_Schema_name_1.table_name_1 where col4=1 AND col5='ABC' ) then 1 else 0 end as com_dq from hive_Schema_name_2.table_name_2 ) as data group by col1;下面是错误,当上面的查询使用Python: AnalysisException: in /in谓词子查询执行时,只能在Filter/Join和一些命令中使用:
我也尝试过使用hivecontext sql,但是得到了相同的错误。
发布于 2022-10-06 04:25:48
有时候,hive不支持SELECT子句中的子查询。您需要使用子句重写SQL。您可以在下面使用SQL,它使用左联接来模拟not in子句。
SELECT Count(com_dq),
col1
FROM (SELECT col1,
CASE
WHEN rs.col3 IS NULL THEN 1
ELSE 0
END AS com_dq
FROM hive_schema_name_2.table_name_2
LEFT JOIN (SELECT DISTINCT col3
FROM hive_schema_name_1.table_name_1
WHERE col4 = 1
AND col5 = 'ABC') rs
ON rs.col3 = col2
WHERE rs.col3 IS NULL) rs2
GROUP BY 2 https://stackoverflow.com/questions/73958663
复制相似问题