2016-03-11 34 views

回答

0
year_count = FOREACH movie GENERATE (case when year>2000 and year<2010 then 1 else 0 end) as year_flag,movie_name; 
year_grp = GROUP year_count BY year_flag; 
movie_count_out = FOREACH year_grp GENERATE group,COUNT(year_flag); 

上面的例子可以帮助您理解解决方案,可能会有一些语法错误困难。如果你需要在十年的基础上进行分组,那么你可以在一年之后使用子串函数并获得特定的范围。使用PigStorage(',')作为(movieid:int,moviename:chararray,yearrelease:int,ratingofmovie:float,moviedurationinsec:float);使用PigStorage(',')作为Movie = load'/home/movie/movies.txt'的

+0

Abhi感谢您的帮助。我得到一个错误I.e不匹配的输入可以帮助我。 – Codify

+0

错误1200:<第1行,第102列>不匹配输入')'期待结束 解析失败:<第1行,第102列>不匹配输入')'期待END – Codify

+0

case语句中缺少结尾。 – Abhi

0

;

movies_released_between_2000_2010 = filter按年份发放> 2000年和发行年份< 2010;

result = foreach movies_released_between_2000_2010 generate moviename,yearofrelease;

转储结果;

+0

此代码完美工作 – Codify

相关问题