我有一个类似以下的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
参数,则查询将返回零个结果。有人知道为什么会这样吗?如果没有足够的信息,我首先应该测试什么?
1条答案
按热度按时间bweufnob1#
你可以用
-dryrun
选项来查看参数替换后脚本的外观。这将告诉您是否按预期进行筛选。如果参数名中没有后跟非法字符(如
/
). 相反,在你的情况下,你应该能够使用CONCAT
: