想要编写(或使用现有的?)UDF 来读取具有多字符分隔符的文件

Posted

技术标签:

【中文标题】想要编写(或使用现有的?)UDF 来读取具有多字符分隔符的文件【英文标题】:Want to write (or use an existing?) UDF to read a file with a multi-character delimiter 【发布时间】:2016-02-03 15:57:10 【问题描述】:

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

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

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

可能的解决方案是:

    现有的 UDF。有吗? 自定义 UDF,基于读取文件的 UDF 工作示例。

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

【问题讨论】:

【参考方案1】:

如果你知道有多少字段,你可以使用org.apache.pig.piggybank.storage.MyRegExLoader 1

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

【讨论】:

以上是关于想要编写(或使用现有的?)UDF 来读取具有多字符分隔符的文件的主要内容,如果未能解决你的问题,请参考以下文章