jr4*_*r42 1 csv hadoop apache-pig
在PiggyBank的CSVExcelStorage中使用以下输入文件可以正常工作:
Col1,Col2,Col3
1,2,3
"1","2","3"
Run Code Online (Sandbox Code Playgroud)
小猪脚本
REGISTER /usr/lib/pig/piggybank.jar;
DEFINE CSVExcelStorage org.apache.pig.piggybank.storage.CSVExcelStorage;
a = LOAD '/path/to/file.csv' USING CSVExcelStorage()
b = FOREACH a GENERATE $1;
DUMP b
Run Code Online (Sandbox Code Playgroud)
按预期工作并返回
(Col2)
(2)
(2)
Run Code Online (Sandbox Code Playgroud)
使用分号作为分隔符执行相同操作不起作用:
Col1;Col2;Col3
1;2;3
"1";"2";"3"
Run Code Online (Sandbox Code Playgroud)
经过调整的猪脚本
REGISTER /usr/lib/pig/piggybank.jar;
DEFINE CSVExcelStorage org.apache.pig.piggybank.storage.CSVExcelStorage;
a = LOAD '/path/to/file.csv' USING CSVExcelStorage(';')
b = FOREACH a GENERATE $1;
DUMP b
Run Code Online (Sandbox Code Playgroud)
简单地回来
()
()
()
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我自己找到了解决方案.该DEFINE语句的问题,并防止参数被传递给CSVExcelStorage().以下将按预期工作:
REGISTER /usr/lib/pig/piggybank.jar;
a = LOAD '/path/to/file.csv' USING org.apache.pig.piggybank.storage.CSVExcelStorage(';')
b = FOREACH a GENERATE $1;
DUMP b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5147 次 |
| 最近记录: |