我的问题很简单。pig(hadoop)能处理ebcdic文件吗?我有一些,我想在hadoop平台上使用pig来处理它们。
目前,我已保存文件并尝试按以下方式加载:
A = LOAD '/user/enrico/FilesForPigs/IRIS.txt' AS (f1,f2,f3);
它似乎工作,但当我试图键入:转储;我收到一个错误。
编辑:
按照donald的建议,我正在尝试创建一个java程序来进行转换,特别是我正在尝试创建自己的load函数。
实际上,代码中有以下问题:
@Override
public InputFormat getInputFormat() {
return new TextInputFormat();
}
这是我找到的示例,但textinputformat不适合我的情况。你知道我该怎么解决吗?
谢谢
1条答案
按热度按时间ffx8fchx1#
不,默认的存储机制假设数据是由标签分隔的ascii。你可以用
PigStorage(',')
把分隔符改成逗号之类的。您有两种选择:
将ebcdic中的数据转换为某种csv格式(如果数据量不是问题,则可以使用单线程程序,如果是问题,则使用mapreduce作业)
编写自定义ebcdic加载函数。你可以看看这里怎么做。
也许是其他人实现了这一点,但在谷歌快速搜索后,我什么也没看到。