gpt4 book ai didi

sql - 为什么在配置单元中使用变量会增加 18k 映射器?

转载 作者:可可西里 更新时间:2023-11-01 15:27:13 25 4
gpt4 key购买 nike

查询 A:

create table tmp_test as
select external_id from my_events where day>'2017-03-05' limit 20;

查询 B:

set FIRST_DAY='2017-03-05';
create table tmp_test as
select external_id from my_events where day>'${FIRST_DAY}' limit 20;

为什么 B 使用 18k 映射器而 A 只使用 160?这是正常现象还是只有我一个人得?

附言。 my_events 按天划分。

最佳答案

在您的 2ns 查询中,变量没有被扩展并且查询是直接使用谓词执行的 -

day > '${FIRST_DAY}'

这可能导致所有分区都被包含在内


正确的语法应该是 -

set FIRST_DAY='2017-03-05';
... day > date ${hiveconf:FIRST_DAY} ...

(日期合格)

set FIRST_DAY=2017-03-05;
... day > date '${hiveconf:FIRST_DAY}' ...

(占位符是合格的)

附言如果day是string类型则去掉前面的date

VariableSubstitution


请注意以下语法(双重使用限定符)会产生语法错误-

set FIRST_DAY='2017-03-05';
... day > date '${hiveconf:FIRST_DAY}' ...

因为在变量扩展之后,查询将如下所示 -

... day > date ''2017-03-05'' ...

关于sql - 为什么在配置单元中使用变量会增加 18k 映射器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42722492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com