示例数据:(tsv 文件:sampl)
1 a
2 b
3 c
raw= load 'sampl' using PigStorage() as (f1:chararray,f2:chararray);
grouped = group raw by f1;
describe grouped;
fields = foreach grouped {
x = sample raw 1;
generate x;
}
当我运行它时,我在 x = sample raw 1;
行收到错误
错误 1200:不匹配的输入“原始”需要 LEFT_PAREN
是否不允许对分组记录进行抽样?
最佳答案
您不能在嵌套 block 中使用“sample”命令。这在 pig 中不受支持。
嵌套 block 中只允许少数操作(CROSS、DISTINCT、FILTER、FOREACH、LIMIT 和 ORDER BY)。您必须在嵌套 block 之外使用示例命令。
另一个问题是,您正在使用默认分隔符(即制表符)加载输入数据。但是你的输入数据是用空格分隔的,所以你需要像这样改变你的脚本
raw= load 'sampl' using PigStorage(' ') as (f1:chararray,f2:chararray);
关于hadoop - 通过抛出错误对组内的记录进行抽样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26935622/