查询移植到Impala



我正试图理解Query的小片段,必须由Impala改编。

Select
.
.
from ${ENV_PREFIX}private_datalap_storage_customer_v1 cus
lateral view explode(adresses) address as addr
where year = substr(${REF_DATE}, 1, 4)
and month = substr(${REF_DATE}, 5, 2)

有人能帮助理解fromWhere发生了什么吗?

另外,如果有人能解释为什么我在尝试在Impala上运行查询时会出现以下错误,我将不胜感激

ParseException行35:20不能识别',' " 1 " ',' in附近的输入功能规范

substr()接收字符串、起始位置和从起始位置提取的字符长度。substr('2021-02-20', 1, 4)应提取2021

最有可能的是,变量没有被解析,你得到的是substr(, 1, 4)而不是substr('2021-02-20', 1, 4)。在Impala中,变量的形式是${var:var_name},检查你是如何传递它的,以及它是如何使用select '${var:var_name}'被解析的

我也不知道你如何在Hive中传递变量,但字符串文字应该引号,如果变量本身不包含引号,这个substr(${REF_DATE}, 1, 4)被解析为substr(2021-02-20, 1, 4),这是错误的,所以仔细检查你需要把${REF_DATE}放在引号中,或者它已经包含引号。

相关内容

  • 没有找到相关文章

最新更新