我有两个数据集
A(af1, af2, af3)
B(bf1, bf2, bf3)
当我加入他们的猪时
C = Join A by af1, B by bf1
随后存储为JSON(删除连接谓词列后)
store C into 'output.son' using JsonStorage();
我将JSON架构视为
{"A::af1":val, "A::af2":val, ...., "B::bf2":val, ...}
有没有办法可以剥离不必要的东西(因为我已经处理了歧义),这种嵌套式命名是由连接产生的?
提前致谢
答案 0 :(得分:0)
我们必须迭代关系/别名C并生成必需的字段,然后存储新的别名,假设新的别名为D.
D = FOREACH C GENERATE A::af1 AS af1, A::af2 AS af2, A::af3 AS af3, B::bf2 AS bf2, B::bf3 AS bf3;
STORE D INTO 'output.son' USING JsonStorage();
更新:
如果别名A中有100个唯一字段名称,同样在B中,则在加入后我们可以使用..运算符并选择所需的列。我们甚至可以使用位置表示法访问所需的字段($ 0 .. $ 99,$ 101 .. $ 200)
C = JOIN A BY af1, B BY bf1;
D = FOREACH C GENERATE af1..af100,bf2..bf100;
STORE D INTO 'output.son' USING JsonStorage();