Redian新闻
>
question about using Hive parameter
avatar
question about using Hive parameter# DataSciences - 数据科学
o*e
1
re: 老中最好留后路。
我来说说最好的后路是什么.
正大光明,不要
丢父老乡亲的脸。
自尊自爱自豪。
积极参与政治
和社区活动。
爱护华裔力量,
上至华裔领袖,下至
新移民,小朋友,小留。
我们都爱护他们,尊重他们,
鼓励他们。
不管谁乱骂中国, 我们
都让他们明着暗着吃X。
直到没有人敢拿中国来
开恶意玩笑为止。
直到没有人敢拿中国来
当假想敌搞战争游戏。
学习枪支,学习群体运动。
学习presentation,
学习文明persuasion,
学习喊拉拉队, 给自己人喝彩。
学习文明竞争, play the game.
别的族裔占领加州怕什么? 占领49个州,
我们也不怕去占领剩下的一个州。
敛财不是后路,
北上广3环房也不是后路,
名校不是后路。
退娃不是后路。
后路是你我他。
后路是奋发。
avatar
s*h
3
question about Hive parameter
Support we have some parameters as:
set nyear = '2014';
set nmonth = '10';
set nday = '17';
We generate a new parameter as:
set newdatestring = concat('/foldername/', ${hiveconf:nyear}, '/', ${
hiveconf:nmonth}, '/', ${hiveconf:nday},'/');
Comparing 2 queries
q1:
select ${hiveconf:newdatestring};
q1 output:
/foldername/2014/10/17/
q2:
select "${hiveconf:newdatestring}";
q2 output:
concat('/foldername/', '2014', '/', '10', '/', '17','/')
The question: is there any setting so that the output of the query 2 is also
'2014/10/17/'?
Why I ask this question?
The real query we want to run is similar to:
create external table tableone( ... ) LOCATION ${hiveconf:newdatestring};
I think the ${hiveconf:newdatestring} in this query is the output of q2
instead of q1.
Thanks for your help.
avatar
d*3
4
参数变量放在脚本里处理,再传给hive 执行该多方便
#!/bin/bash
nyear='2014'
nmonth='10'
nday='17'
hql="
create external table tableone
(
id int
) LOCATION '$LOCATION'
"
hive -e "$hql"
avatar
d*3
5
写漏了
LOCATION="/foldername/$nyear/$nmonth/$nday"
avatar
s*h
6
不行就只能这样了。
关键是有好几个不同的foldername(tables)。这样搞太麻烦。
date也可能有好多,比如连续30天。
本来是打算传个终止日期,和天数就可以了。

【在 d*******3 的大作中提到】
: 参数变量放在脚本里处理,再传给hive 执行该多方便
: #!/bin/bash
: nyear='2014'
: nmonth='10'
: nday='17'
: hql="
: create external table tableone
: (
: id int
: ) LOCATION '$LOCATION'

avatar
d*3
7

1.无论你在hive 里搞还是在脚本呢里搞,逻辑上是一样的。你在hiveconf里搞绝对不
会比在脚本里搞简单,hive 本身只提供类sql 的查询语言,逻辑控制没有脚本灵活方
便。
2.脚本里传个起始/终止时间和天数,构造下foldername 传给hive 执行是恨easy 的一
件事情。

【在 s****h 的大作中提到】
: 不行就只能这样了。
: 关键是有好几个不同的foldername(tables)。这样搞太麻烦。
: date也可能有好多,比如连续30天。
: 本来是打算传个终止日期,和天数就可以了。

avatar
s*h
8
在shellscript里搞,就要传很多foldername进hive。
而且,如果要按date来patition,不可能几百个patition的location一个一个传进去吧。
如果hive里不能解决,那我估计会简单用python写个生成hive query的东西

【在 d*******3 的大作中提到】
:
: 1.无论你在hive 里搞还是在脚本呢里搞,逻辑上是一样的。你在hiveconf里搞绝对不
: 会比在脚本里搞简单,hive 本身只提供类sql 的查询语言,逻辑控制没有脚本灵活方
: 便。
: 2.脚本里传个起始/终止时间和天数,构造下foldername 传给hive 执行是恨easy 的一
: 件事情。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。