2013-12-11 43 views
3

我想轉數成概率:如何將1x1別名轉換爲標量?

total = foreach (group A all) generate SUM(A.count); 
A = foreach A generate A.count/total as probability; 

這不起作用,因爲total是別名,不是標:

無效標投影:總:A柱需要從投影 它用作一個標量的關係

回答

3

即使別名total只是有一個字段(總和),你仍然有以引用該字段。

這應該工作:

total = foreach (group A all) generate SUM(A.count) as total; 
A = foreach A generate A.count/total.total as probability; 
+0

它會沒有鑄造total.total爲int的工作/長? – Ruslan

+0

@Ruslan我很確定它會。 'SUM'的輸出應該默認爲很長,所以你不必做'SUM(A.count)AS total:long;'。 – mr2ert

+0

好的。順便說一句,鑄造的語法在Pig中無效:https://issues.apache.org/jira/browse/PIG-2315 – Ruslan