0
当我尝试file.txt的加载猪猪我收到以下错误:用管道连接管将数据加载到Pig | - |分隔符
pig script failed to validate: java.lang.RuntimeException: could not instantiate 'PigStorage' with arguments '[\|-\|]'
从文件中的样本行是:
文本| - |文| - |文本
我使用下面的命令:
bag = LOAD 'file.txt' USING PigStorage('\\|-\\|') AS (v1:chararray, v2:chararray, v3:chararray);
它是分隔符?我的正则表达式?
它看起来不像PigStorage允许使用正则表达式分隔符。试试'PigStorage('| - |')'。 –
对不起,首先尝试,它仍然会抛出:猪脚本未能验证:java.lang.RuntimeException:无法实例化'PigStorage'参数'[| - |]' –
是的,所以问题是,分隔符只能是一个字节字符,并且您有3:[*分隔符 - **单字节字符**,用于分隔字段*](http://pig.apache.org/docs/r0.10.0/api/org /apache/pig/builtin/PigStorage.html#PigStorage(java.lang.String))。我发现一个提示:[*]总是可以创建一个新的loadfunc并实现自己的解析 (可能通过扩展PigStorage并覆盖解析位)。*](http://qnalist.com/questions/572/regular -expression-作为分隔符合pigstorage) –