1

我的本地 HDFS 中有文件,它由“:::”分隔。

但是,当我使用以下命令时

A = 使用 PigStorage(':::') 加载 '/user/vishal/WordCount/hw3data/c0001' 作为 (a, b, c);

它给了我以下错误----

错误 1200:无法使用参数 '[:::]' 实例化 'PigStorage'

究竟可能是什么问题?

谢谢

4

1 回答 1

3

PigStorage 仅支持单字符分隔符。如果您不想创建自定义加载程序,
一个解决方案是遵循 Donald 的回答或查看MyRegExLoader 。在您的情况下,它看起来像这样:

REGISTER '/my_pig_home/contrib/piggybank/java/piggybank.jar'
A = LOAD '/user/vishal/WordCount/hw3data/c0001' 
  USING org.apache.pig.piggybank.storage.MyRegExLoader(
    '([^\\:]+):::([^\\:]+):::([^\\:]+)') 
      as (a:chararray, b:chararray, c:chararray);
于 2013-02-28T09:02:58.727 回答