首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将单元格拆分为单独的行并找到最小的摘要值

如何将单元格拆分为单独的行并找到最小的摘要值
EN

Stack Overflow用户
提问于 2016-08-10 13:48:45
回答 2查看 86关注 0票数 1

我有以下数据集:

代码语言:javascript
代码运行次数:0
运行
复制
Movies : moviename, genre1, genre2, genre3 ..... genre19  

(上述所有类型的值都为0或1,1表示电影属于该类型)

现在我想找出哪部电影的体裁最少?

我尝试了下面的猪脚本:

代码语言:javascript
代码运行次数:0
运行
复制
items = load 'path' using PigStorage('|') as (mName:chararray,g1:int,g2:int,g3:int,g4:int,g5:int,g6:int,g7:int,g8:int,g9:int,g10:int,g11:int,g12:int,g13:int,g14:int,g15:int,g16:int,g17:int,g18:int,g19:int);

sumGenre = foreach items generate mName, g1+g2+g3+g4+g5+g6+g7+g8+g9+g10+g11+g12+g13+g14+g15+g16+g17+g18+g19 as sumOfGenres;

groupAll = group sumGenre All;

在接下来的步骤中,通过使用MIN(sumGenre.sumofGenres),我可以得到一个类型,这是最小值,但我要寻找的是得到一个电影的名字,其中最少的不。以及那部电影的种类数量。

有人能帮忙吗?

  1. 我想知道还有什么其他简单的方法可以得到g1+g2+...g19之和吗?
  2. 还有输出:有最少类型的电影?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-10 16:12:27

groupAll之后

代码语言:javascript
代码运行次数:0
运行
复制
r1 = minGenre = foreach groupAll generate MIN(sumGenre.sumOfGenres) as minG;

做左r1 minGsumGenre sumOfGenres之间的外连接;

以获得最少类型电影的名单..。

希望这会有帮助..。

对于动态行字段sum,可以像这样使用UDF。

代码语言:javascript
代码运行次数:0
运行
复制
public class DynRowSum  extends EvalFunc<Integer> 
{
public Integer  exec(Tuple v) throws IOException
{
List<Object>  olist  =  v.getAll();
int sum = 0;
int cnt=0;
for( Object o : olist){
   cnt++;
   if (cnt!=1) {
                int val= (Integer)o;
                sum = sum + val;
   }
}
return new Integer(sum);
}

} 

在pig中,像这样更新脚本。

代码语言:javascript
代码运行次数:0
运行
复制
grunt>sumGenre = foreach items generate mName,DynRowSum(*) as sumOfGenres;

如果体裁增加或减少代码保持不变,您将在这里获得优势。

票数 1
EN

Stack Overflow用户

发布于 2016-08-10 17:29:13

代码语言:javascript
代码运行次数:0
运行
复制
a = LOAD 'path';
b = FOREACH a generate FLATTEN(STRSPLIT($0, '\\|'));
c = FOREACH b generate $0 as movie, FLATTEN(TOBAG(*)) as genre;
d = FILTER c BY movie!=genre;
e = GROUP d BY $0;
f = FOREACH e GENERATE group, SUM(d);
i = ORDER f BY $1;
j = LIMIT i 1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38875318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档