假设Pig UDF创建了两种不同类型的数据记录。
Pig脚本如何以两种不同的方式处理来自此UDF的组合元组的返回列表?
例如:
public Tuple exec (Tuple input) // input ignored in UDF for simplicity
{
Tuple t = TupleFactory.getInstance ().newTuple ();
if (Math.random () < 0.5)
t.append ("less than half");
else
t.append (new Date ());
return t;
}
Pig脚本应该执行以下操作:
register ...
define myUDF ...
data = load ...;
combinedList = foreach data generate myUDF (data);
stringList = filter combinedList by $0 instanceof java.lang.String; // ??
dateList = filter combinedLists by $0 instanceof java.util.Date; //??
store stringList into ... ;
store dateList into ... ;
谢谢,
答案 0 :(得分:0)
这里有两个问题。
null
或某些无效常量会更合适。SPLIT
操作。虽然您在Pig中使用instanceof
的示例有误,但基本用法类似于SPLIT combinedList INTO stringList IF $0 instanceof String, dateList IF $0 instanceof Date
。