我在我的本地HDFS中有文件,它由':::'分隔。
但是当我使用以下命令时
A = load'/ user / vishal / WordCount / hw3data / c0001'使用 PigStorage(':::')as(a,b,c);
它给了我以下错误----
ERROR 1200:无法使用参数'[:::]'实例化'PigStorage'
究竟可能是什么问题?
由于
答案 0 :(得分:3)
PigStorage仅支持单字符分隔符 如果您不想创建自定义加载器,解决方案是遵循Donald的answer或查看MyRegExLoader。在你的情况下,它看起来像这样:
REGISTER '/my_pig_home/contrib/piggybank/java/piggybank.jar'
A = LOAD '/user/vishal/WordCount/hw3data/c0001'
USING org.apache.pig.piggybank.storage.MyRegExLoader(
'([^\\:]+):::([^\\:]+):::([^\\:]+)')
as (a:chararray, b:chararray, c:chararray);