想要编写(或使用现有的?)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 来读取具有多字符分隔符的文件的主要内容,如果未能解决你的问题,请参考以下文章
使用正则表达式将字段拆分为数组的 Bash 脚本用于多字符分隔符