pig中dump的奇怪错误

0dxa2lsx  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(392)

这是我的代码和错误,在hadoop上使用pig,有人有什么好主意吗?谢谢。

  1. -- ({(3),(4),(1),(2),(7),(5),(6)},{(1),(3),(5),(12)})
  2. A = load 'input.txt' AS (B1:bag{T:tuple(val:int)},B2:bag{T:tuple(val:int)});
  3. DUMP A.B1;
  4. DUMP A.B2;
  5. [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during parsing. Encountered " <PATH> "A.B1 "" at line 4, column 6.
  6. Was expecting:
  7. <IDENTIFIER> ...

提前谢谢你,林

qzlgjiam

qzlgjiam1#

清管器不支持转储a.b1和转储a.b2。这里b1,b2是属性a中的包,就像关系中的两列一样,我们不能用“dump”操作符转储关系中的列。
如果要对关系的列执行任何操作,可以使用 FOREACH 以及 GENERATE 关系运算符。 X = FOREACH A GENERATE B1.$0; ({(3),(4),(1),(2),(7),(5)}) Y = FOREACH A GENERATE B2.$0; ({(1),(3),(5),(12)})

oknwwptz

oknwwptz2#

你的问题是 DUMP A.B1 不是有效的pig语法。如果你只想拿出第一个袋子, B1 然后您需要创建一个只生成该包的新关系(对于第二个包也是如此)。

  1. F1 = FOREACH A GENERATE B1;
  2. F2 = FOREACH A GENERATE B2;
  3. DUMP F1;
  4. {(3),(4),(1),(2),(7),(5),(6)}
  5. DUMP F2;
  6. {(1),(3),(5),(12)}

相关问题