我想在Pig中调整一些数据,使用我正在旋转的行中的值作为我的列名。我事先并不知道这些价值观。我希望将这些新列名存储为每个相关值的模式。
这与Pivoting in Pig的问题相同,但是使用动态生成的列名称。
现在我有一袋像
这样的元组{(C1, V1), (C2, V2), (C3, V3), ... (Cn, Vn)}
我希望将它们改为:
dump bag;
{ (V1, V2, V3, ... Vn) }
describe bag;
bag: {C1: chararray,C2: chararray, ... , Cn: chararray}
我目前正在尝试使用覆盖outputSchema()
的UDF执行此操作,但我无法访问我的列名称,因为outputSchema()
的输入应该是一个Schema对象,并且架构对象不允许使用input.get(<field-num>)
来访问字段值。还有另一种动态创建新架构的方法吗?
我与使用架构结婚的原因是因为我最终导出为CSV。