想要编写(或使用现有的?)UDF 来读取带有多字符定界符的文件

Want to write (or use an existing?) UDF to read a file with a multi-character delimiter

我想在 Pig 中读取一个使用多字符定界符分隔字段的数据文件(我没有要求以这种方式编写文件)。所以我的 Pig 脚本看起来像:

myData = LOAD 'myFile' USING PigStorage(‘~|~’) as (col1:chararray, col2:chararray); 

我的问题是 PigStorage 不支持多字符分隔符。

可能的解决方案是:

  1. 一个现有的 UDF。有吗?
  2. 基于读取文件的 工作 UDF 示例的自定义 UDF。

关于第二点,我看到了很多复制的pig.apache.org example,但问题是这段代码无法编译(除了明显的语法错误外,所有导入语句都丢失了所以我不知道 类 需要导入哪个版本!)

如果您知道需要多少个字段,您可以使用 org.apache.pig.piggybank.storage.MyRegExLoader 1

但是你需要写一个可以解析整行的正则表达式,所以不如PigStorage方便。