Hadoop/Pig CSVExcelStorage具有不同的分隔符

 东yidd_154 发布于 2023-02-10 10:21

在PiggyBank的CSVExcelStorage中使用以下输入文件可以正常工作:

Col1,Col2,Col3
1,2,3
"1","2","3"

小猪脚本

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

按预期工作并返回

(Col2)
(2)
(2)

使用分号作为分隔符执行相同操作不起作用:

Col1;Col2;Col3
1;2;3
"1";"2";"3"

经过调整的猪脚本

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

简单地回来

()
()
()

有任何想法吗?

1 个回答
  • 我自己找到了解决方案.该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
    

    2023-02-10 10:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有