使用Pig Latin计算唯一值的出现次数

问题描述 投票:0回答:1

[我正在尝试使用Apache Pig Latin找出2019年12月1日(来自http://cran-logs.rstudio.com/)下载次数最多的RStudio软件包的前5个。我需要的列是“ r_os”和“包”。这是我的代码:

A = load '2019-12-01.csv' USING org.apache.pig.piggybank.storage.CSVExcelStorage(',', 'NO_MULTILINE', 'UNIX', 'SKIP_INPUT_HEADER');
B = FOREACH A GENERATE r_os,package;
C = DISTINCT B;
D = GROUP C BY package;
result = FOREACH C GENERATE flatten($0), COUNT($1) as package_distr;

我得到以下结果,这是错误的:

(magrittr,10)
(htmltools,10)
(httr,10)
(lubridate,10)
(ellipsis,10)

出现的次数应该更多,而不是10。我期望的输出应大致类似于:

(magrittr,10000)
(htmltools,9876)
(httr,8700)
(lubridate,5320)
(ellipsis,3000)

知道我在做什么错吗?谢谢!

csv ubuntu apache-pig
1个回答
0
投票
result = FOREACH D GENERATE group, COUNT(C) as package_distr;

group是包裹名称,C是将C分组后得到的袋子的名称,我们将其计算在内。

© www.soinside.com 2019 - 2024. All rights reserved.