想要编写(或使用现有的?)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 不支持多字符分隔符。
可能的解决方案是:
- 一个现有的 UDF。有吗?
- 基于读取文件的 工作 UDF 示例的自定义 UDF。
关于第二点,我看到了很多复制的pig.apache.org example,但问题是这段代码无法编译(除了明显的语法错误外,所有导入语句都丢失了所以我不知道 类 需要导入哪个版本!)
如果您知道需要多少个字段,您可以使用 org.apache.pig.piggybank.storage.MyRegExLoader
1
但是你需要写一个可以解析整行的正则表达式,所以不如PigStorage
方便。
我想在 Pig 中读取一个使用多字符定界符分隔字段的数据文件(我没有要求以这种方式编写文件)。所以我的 Pig 脚本看起来像:
myData = LOAD 'myFile' USING PigStorage(‘~|~’) as (col1:chararray, col2:chararray);
我的问题是 PigStorage 不支持多字符分隔符。
可能的解决方案是:
- 一个现有的 UDF。有吗?
- 基于读取文件的 工作 UDF 示例的自定义 UDF。
关于第二点,我看到了很多复制的pig.apache.org example,但问题是这段代码无法编译(除了明显的语法错误外,所有导入语句都丢失了所以我不知道 类 需要导入哪个版本!)
如果您知道需要多少个字段,您可以使用 org.apache.pig.piggybank.storage.MyRegExLoader
1
但是你需要写一个可以解析整行的正则表达式,所以不如PigStorage
方便。