2016-03-27 6 views
0
country_landmass_sorted = foreach country_landmass { 
country_landmass_count = foreach country generate group,COUNT(name) as r; 
sorted = ORDER country_landmass_count BY $1 DESC; 
GENERATE group, sorted; 
}; 

Aşağıdaki hatayı aldım. Bu hatayı nasıl giderebilirim?Hamd ekosisteminde, Pig kullanıyorum ve aşağıdaki sorguda sıkışıp kaldım?

2016-03-25 22:19:33,519 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse: 
<line 11, column 16> expression is not a project expression: (Name: ScalarExpression) Type: null Uid: null) 
Details at logfile: /home/cloudera/pig_1458968172221.log 
+0

onay bu kullandığımız tek sorguda yapamaz http://stackoverflow.com/questions/8235236/using-filter-in-a-nested-foreach-in-pig .. –

cevap

0

Ayrıştırın, sayımı oluşturmak için FOREACH kullanın ve ardından ORDER BY için normal bir ifade kullanın. Bunu dene.

A = LOAD 'file' USING PigStorage(',') as (a:chararray,b:int); 
B = group A BY a; 
C = FOREACH B GENERATE group,COUNT(A.a); 
D = ORDER C By $1; 
+0

yardımcı olur iç içe? – bthapa

+0

İç içe geçmiş foreach'ın sonunda yalnızca bir tane oluşturabilirsiniz. Bu nedenle, Statement 3 ve 4 için iki tane oluşturulamıyorsunuz. –

+0

Çok teşekkür ederim – bthapa