2013-02-28 21 views
1

我有我的本地HDFS文件,它由':::'分隔。錯誤1200:無法實例化具有參數'[:::]'的'PigStorage''

然而,當我使用下面的命令

A = load '/user/vishal/WordCount/hw3data/c0001' using PigStorage(':::') as (a, b, c);

它給了我下面的錯誤----

ERROR 1200: could not instantiate 'PigStorage' with arguments '[:::]'

究竟可能是問題?

感謝

+1

我覺得豬不會允許多個字符作爲分隔符,你必須使用UNIX tr命令手動更改文件的分隔符單個字符,請稍後重加載 – 2013-02-28 07:09:27

回答

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); 
+0

喜Lonard,當嘗試上述事情時,我得到以下錯誤錯誤2998:未處理的內部錯誤。實現類。可能是什麼原因 – Uselesssss 2013-03-02 07:01:08

+0

你使用哪個Pig版本?你能提供一些關於這個問題的更多信息(例如堆棧跟蹤)嗎? – 2013-03-05 14:16:40

+0

我正在使用0.10.1(豬版) 以下是錯誤--- 2013-03-07 14:35:58,235 [main] ERROR org.apache.pig.tools.grunt.Grunt - 錯誤2998:未處理的內部錯誤。實現類 日誌文件處的詳細信息:/home/vishal/pig_1362638150546.log 錯誤2998:未處理的內部錯誤。實現類 – Uselesssss 2013-03-07 09:06:24

相關問題