我对Pig很陌生,所以我可能走错了路。我在hadoop的一个目录中有一堆gzip文件。我试着从所有这些文件中抽取大约1000行。不一定要精确,所以我想用 SAMPLE
. SAMPLE
需要采样一行的概率,而不是我需要的行数,所以我想我应该计算所有这些文件中的行数,而不是简单地用1000除以这个数,然后用它作为概率。这将工作,因为我不需要正好有100行结束。到目前为止,我得到的是:
raw = LOAD '/data_dir';
cnt = FOREACH (GROUP raw ALL) GENERATE COUNT_STAR(raw);
cntdiv = FOREACH cnt GENERATE (float)100/ct.$0;
现在我不知道如何使用中的值 cntdiv
在 SAMPLE
. 我试过了 SAMPLE raw cntdiv
以及 SAMPLE raw cntdiv.$0
,但它们不起作用。我能在调用 SAMPLE
? 也许有更好的方法来完成我想做的事情?
1条答案
按热度按时间kq4fsx7k1#
查看最初请求此功能的票证中的描述:https://issues.apache.org/jira/browse/pig-1926
我还没有测试过这个,但看起来应该可以:
重要的是通过名称引用标量(
rate
),而不是按位置($0
).