pig-将字符串连接到参数?

x9ybnkn6  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(410)

我有一个类似以下的Pig脚本:

a = LOAD 'feedname.hourly_data' 
USING org.apache.hcatalog.pig.HCatLoader();
b = FILTER a BY dt=='$date{00}';
c = GROUP b ALL;
d = FOREACH c GENERATE COUNT(b); 
dump d;

使用以下参数执行脚本:

pig -useHCatalog -p date=20140708 my_script.pig

请注意,此脚本使用硬编码的dt值:

a = LOAD 'feedname.hourly_data' 
USING org.apache.hcatalog.pig.HCatLoader();
b = FILTER a BY dt=='2014070800';
c = GROUP b ALL;
d = FOREACH c GENERATE COUNT(b); 
dump d;

但是,当我通过 date=20140708 参数,则查询将返回零个结果。有人知道为什么会这样吗?如果没有足够的信息,我首先应该测试什么?

bweufnob

bweufnob1#

你可以用 -dryrun 选项来查看参数替换后脚本的外观。这将告诉您是否按预期进行筛选。
如果参数名中没有后跟非法字符(如 / ). 相反,在你的情况下,你应该能够使用 CONCAT :

b = FILTER a BY dt==CONCAT('$date', '00');

相关问题