目前我有一个简单的猪脚本,它从 hadoop fs 上的文件中读取,如
my_input = load 'input_file' as (A, B, C)
然后我有另一行代码需要操作字段,例如将它们转换为大写(如在 Pig UDF 教程中)。
我做类似的事情,
manipulated = FOREACH my_input GENERATE myudf.Upper(A, B, C)
现在在我的Upper.java
文件中,我知道我可以得到 A、B、C 的值(假设它们都是String
s)
public String exec(Tuple input) throws IOException
{
//yada yada yada
....
String A = (String) input.get(0);
String B = (String) input.get(1);
String C = (String) input.get(2);
//yada yada yada
....
}
无论如何我可以通过名称获取字段的值吗?input.get(i)
例如,如果我需要获得 10 个字段,除了从 0 到 9之外没有别的办法吗?
我是 Pig 的新手,所以我很想知道为什么会这样。有类似的东西tuple.getByFieldName('Field Name')
吗?