Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache pig 如何获取pig中最大和最小值的名称_Apache Pig - Fatal编程技术网

Apache pig 如何获取pig中最大和最小值的名称

Apache pig 如何获取pig中最大和最小值的名称,apache-pig,Apache Pig,我有pig代码来获取最大值和最小值。我可以给他们看,但不知道什么是最大值和最小值 在代码中,您可以看到我编写了data.KEY,但这个将打印所有名称 film=LOAD'/film.csv'使用PigStorage(',')作为 (电影编号:int,片名:chararray,描述:chararray,发行年份:int,语言编号:int,租赁期限:int, 租金:整数,长度:浮动,重置成本:浮动,评级:chararray,特殊功能:chararray); film_category=LOAD'/

我有pig代码来获取最大值和最小值。我可以给他们看,但不知道什么是最大值和最小值

在代码中,您可以看到我编写了data.KEY,但这个将打印所有名称

film=LOAD'/film.csv'使用PigStorage(',')作为
(电影编号:int,片名:chararray,描述:chararray,发行年份:int,语言编号:int,租赁期限:int,
租金:整数,长度:浮动,重置成本:浮动,评级:chararray,特殊功能:chararray);
film_category=LOAD'/film_category.csv',使用PigStorage(',')作为(film_id:int,category_id:int);
category=LOAD'/category.csv',使用PigStorage(',')作为(category_id:int,name:chararray);
结果1=按胶片id连接胶片,按胶片id连接胶片类别;
结果2=按电影类别加入结果1::类别id,按类别id加入结果1;
result3=foreach(groupresult2 BY category::name)生成组作为键,AVG(result2.length)作为AVG_值;
数据=键ASC的订单结果3;
分组=组数据全部;
max=foreach生成data.KEY作为name1,max(data.avg_值)作为max_值;
min=foreach Group generate data.KEY作为名称2,min(data.avg_值)作为最小值;
values=foreach生成max.name1、max.max\u值、min.name2、min.min\u值;

转储值您正在使用分组生成“值”关系,该关系将生成所有名称,因为您是按all分组的。在按max分组后,按desc排序并获取顶行。类似地,对于min,按asc排序并获取顶行

max_min = foreach grouped {
            desc_order = order data by avg_value DESC;
            asc_order = order data by avg_value ASC;
            desc_limit = limit desc_order 1;
            asc_limit = limit asc_order 1;
            generate flatten(desc_limit),flatten(asc_limit);
}
DUMP max_min;

谢谢你的回复。但是你的密码打印了所有的名字。({(旅游),(体育),(科幻),(新),(音乐),(恐怖),(游戏),(外国),(家庭),(戏剧),(纪录片),(喜剧),(经典),(儿童),(动画),(动作)},128.2027027027108.19672131147541)。我想要的是最大值最大值和最小值最小值最小值的名称谢谢,它正在工作。但是,您需要在平均值之前删除第2行和第3行中的“数据”_value@AliAl-阿里很酷。