通过抛出错误对组内的记录进行采样

pdkcd3nj  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(435)

示例数据:(tsv文件:sampl)
1安培
2个b
3摄氏度

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:不匹配的输入“raw”应为左\u
分组记录不允许采样吗?

xqnpmsa8

xqnpmsa81#

不能在嵌套块中使用“sample”命令。pig中不支持此操作。
嵌套块中只允许很少的操作,如(cross、distinct、filter、foreach、limit和order by)。必须在嵌套块之外使用sample命令。
另一个问题是,您正在使用默认分隔符ie tab加载输入数据。但是您的输入数据是用空格分隔的,所以您需要像这样更改您的脚本

raw= load 'sampl' using PigStorage(' ') as (f1:chararray,f2:chararray);

相关问题