我有一个这样的查询,显然Impala不支持SELECT语句中的子查询。我如何用Impala整齐地重写它?
SELECT
col1,
col2,
...
CASE
WHEN (SELECT 1
FROM
table1 x,
table2 y
WHERE
x.id = y.id
LIMIT 1) = 1
THEN
'A'
ELSE
'B'
END
coln
F
我有下面的Impala查询,它被设置为计算前一天数据集中的设备数量,而不是前一天。我想在多个日期(过去一年中的每一天)运行此查询。 在Impala有什么方法可以做到这一点吗?我知道没有循环功能,但不确定是否有某种方法可以将日期数组传递到变量中,以便查询在连续的日期上运行。谢谢! SELECT COUNT(DISTINCT devices)
FROM request
WHERE devices NOT IN (
SELECT devices
FROM request
WHERE forwarded_dt = CAST((CAST('2020-03-17
select
a.time, b.name, c.user_city,
case
when c.user_country='xxxx' and c.user_state in (select cast(state_id as string) from states_list)
then (select d.STATE_NAME from States_LIST d where d.STATE_ID = cast(c.user_state as int) )
else c.user_state
end state,
case
when c.us
我不知道下面的蜂巢查询有什么问题。然而,这是抛出的错误。
select h.database_name, h.table_name, h.frequency as hive_frequency, i.frequency as impala_frequency
from hive_access_frequency h
left join impala_access_frequency i
on
h.database_name = i.database_name and
h.table_name = i.table_name
union
select i.database_name,
第一个查询运行良好。但是第二个查询给出了错误"Error 10025 Expression not in GROUP BY key ''-3'‘“。我读了相关的帖子,到目前为止,我不确定如何修复这个错误。
非常感谢你在这方面的帮助。
查询#1
SELECT case when user_id = '-3' then cast(order_id as varchar(255)) else user_id end as user_id2
from orders
where user_id = '-3'
查询#2
SELECT cas
我正在尝试使用两个单独的子查询的结果来找出百分比。这两个查询使用同一列的计数,一个使用where子句,另一个使用整个集合。 第一个查询: SELECT COUNT(DISTINCT(col1))
FROM table
WHERE LOWER(col2) NOT IN ("value1", "value2") 第二个查询: SELECT COUNT(DISTINCT(col1))
FROM table 我需要以下结果: (first query)/(second query) *100 作为百分比,但我不确定如何做到这一点,因为Impala不允许在select语
我试图理解为什么下面的子查询将在Impala而不是Hive中工作。
select * from MySchema.MyTable where identifier not in
(select identifier from schema.table where status_code in (1,2,3));
编辑:
添加错误
编译语句时出错:失败: SemanticException错误10249:第1:55行不支持的SubQuery表达式“标识符”:关联表达式不能包含不限定的列引用。
我正在使用Imapala上的一些表,并使用jdbc配置单元驱动程序进行查询。在提取数据之前,我需要在某些表上运行刷新(或配置Impala以自动运行)。当我尝试通过jdbc驱动程序运行refresh tablename时,我做不到(因为在HIVE中这个命令不存在--我想)。我试着写了一个简单的impala-shell脚本(refresh tablename),然后像这样用curl运行,curl -i -L "http://<server>:50070/webhdfs/v1/<path to sh file>?op=OPEN"也不起作用。有人能帮我吗?谢谢!
我在impala中有以下SQL查询
SELECT currentdate,close
FROM ( SELECT * FROM spyprice)
Where currentdate between '2015-01-16' and '2016-06-17';
它给了我一个错误:
Starting Impala Shell without Kerberos authentication
ERROR: AnalysisException: Syntax error in line 15:
WHERE currentdate BETWEEN '2015
在Hue中的Impala查询编辑器中,您应该能够检查查询完成。但这在某种程度上是不可靠的,因为它有时会卡住(即36%,即使查询可能正在进行),并且在这一点上您不知道查询是否已经完成。在Hue Job Browser中,我可以看到Hive ans Spark作业,但不能看到impala。在Hue的任何地方,我可以找到可靠的Impala查询完成状态进度?
我有一个关于我的脚本的问题,为什么我不能对子查询使用where子句( where counter = '1')
我这里有一个样品,请打开图片
SELECT effectiveDate,
(SELECT
(CASE
WHEN note='REGULAR LOGGED'
THEN log
WHEN description = description
THEN description
END)
FROM timesheet WHERE counter ='1'
) as Counter
我有两张黑斑羚桌。
第1表T1 (有其他列,但我只对工作日的日期和日期类型感兴趣):
date day_type
04/01/2020 Weekday
04/02/2020 Weekday
04/03/2020 Weekday
04/04/2020 Weekend
04/05/2020 Weekend
04/06/2020 Weekday
第二表T2:
process date status
A 04/01/2020 finished
A 04/02/2020 finished
A 04/03/2020 finished
A
我能够运行一个文本文件,该文件在impala-shell中使用';‘分隔查询。但是,我有一些查询需要另一个查询的结果。例如,如果Query1给我年龄,然后下面的查询类似于SELECT * FROM table1 WHERE age in (...),并且这些年龄来自第一个查询中的年龄列。
我知道您可以使用--vars选项指定,但这似乎是为了插入特定值。有没有办法创建Python脚本来处理在impala-shell中运行的类似内容?
我可以在hive和impala中使用基于java的UDF,但在where子句中调用udf时抛出ClassNotFound错误。 当在where子句中引用时,自定义函数不能使用,但当它仅在impala 2.9.0-cdh5.12.1中的select后面引用时,它才能正常工作 在hive中,select udfjson(memo,state) from tableA where udfjson(memo,state) = 0 and name = 'test'工作正常,但在impala中无法正常工作。 在impala中执行select udfjson(memo,state) fr
我正在将Oracle查询转换为Impala等价物。我有这样一个Oracle查询:
select c1, c2 from t1
where rownum <= (select c3 from t2 where c4 = 'Some string' and c5 = 'some string')
and c2 in (1,2,3) order by c3 asc;
但是,Impala不支持rownum(),这是我在研究时认识的。请帮助我在黑帕拉实施这一计划。
提前谢谢你。
我有一个类似于下面的表格:
id | field_A | field_B
----------------------------
1 | Brown | Black
2 | Blue | White
3 | Red | Black
我需要用下面的逻辑创建一个field_C:
if (field_A is not null):
field_C = field_A
else:
field_C = field_B
这可以使用SQL/Impala查询来完成吗?如果是这样的话,正确的做法是什么?谢谢!
嗨,我不知道为什么当我在Impala上运行这个的时候CASE不能工作。 因此,此查询应检查在帐号末尾是否存在与数据库中其他列完全相同的排序代码-但它不执行此工作。CONCAT的结果与预期完全一致,例如'%18002',但没有找到匹配的结果。 SELECT
account_no
,sort_code
,CASE WHEN account_no LIKE CONCAT("'",'%',CAST(sort_code AS STRING),"'") THEN 1 ELSE 0 END AS CHECK
,CONC
我需要通过色调编辑器来划分Impala中两个不同查询的结果。
我用Oracle编写的查询如下所示:
select
(select count(distinct t1.ids)
from table1 t1
where extract(year from t1.insertdate)=2020)
/
(select count(distinct t2.ids)
from table2 t2
where extract(year from t2.insertdate)=2019)
from dual
在impala上,由于"/“运算符,相同的查询不能工作。请解释一下
我在Hive表中有一个flag列,我想在一些处理之后更新它。我尝试使用下面的查询来使用hive和impala,但是它不起作用,并且得到它需要是一个kudu表,而我拥有的表是一个非kudu表。有没有办法像下面的查询一样更新它? UPDATE table_name SET flag_col = 1
where [condition];
我有一个脚本,它需要在同一数据子集上执行四个相当大的MySQL查询。有没有办法把它们组合成一个查询?
下面是查询的样子:
Select sum(value) From
( Select lat, lng, value From `pop_geo_199` Where (
(lat Between 38.1768916977 And 39.6131083023) And (lng Between -77.9596650363 And -76.1143349637))
) As FirstCut
Where (acos(0.627895140732*
我一直试图写一个R脚本来查询Impala数据库。下面是对数据库的查询:
select columnA, max(columnB) from databaseA.tableA where columnC in (select distinct(columnC) from databaseB.tableB ) group by columnA order by columnA
当我手动运行这个查询时(通过impala-shell阅读: Rscript外部),我能够获得表的内容。但是,当通过R脚本尝试相同的操作时,我会得到以下错误:
[1] "HY000 140 [Cloudera][Im