1

我想在 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}

我目前正在尝试使用覆盖的 UDF 来执行此操作outputSchema(),但是我无法访问我的列名,因为outputSchema()' 的输入应该是 Schema 对象,并且 Schema 对象不允许使用input.get(<field-num>)来访问字段值。还有另一种动态创建新模式的方法吗?

我如此喜欢使用模式的原因是因为我最终要导出到 CSV。

4

0 回答 0