Hadoop Pig可以处理ebcdic格式的文件吗?

Hadoop Pig可以处理ebcdic格式的文件吗?,hadoop,apache-pig,ebcdic,Hadoop,Apache Pig,Ebcdic,我的问题很简单。 Pig(Hadoop)能处理ebcdic文件吗? 我有一些,我想在Hadoop平台中使用Pig来处理它们 目前,我已保存该文件,并尝试按如下方式加载该文件: A = LOAD '/user/enrico/FilesForPigs/IRIS.txt' AS (f1,f2,f3); 这似乎有效,但当我尝试键入:DUMP A;我收到一个错误 编辑: 按照Donald的建议,我正在尝试创建一个Java程序来进行转换,特别是我正在尝试创建自己的加载函数 实际上,我在代码中有以下问题:

我的问题很简单。 Pig(Hadoop)能处理ebcdic文件吗? 我有一些,我想在Hadoop平台中使用Pig来处理它们

目前,我已保存该文件,并尝试按如下方式加载该文件:

A = LOAD '/user/enrico/FilesForPigs/IRIS.txt' AS (f1,f2,f3);
这似乎有效,但当我尝试键入:DUMP A;我收到一个错误

编辑:

按照Donald的建议,我正在尝试创建一个Java程序来进行转换,特别是我正在尝试创建自己的加载函数

实际上,我在代码中有以下问题:

@Override
    public InputFormat getInputFormat() {


        return new TextInputFormat();
    }
这是我找到的示例,但TextInputFormat不适合我的情况。 你知道我怎么解决这个问题吗


谢谢

否,默认的存储机制假定数据由选项卡分隔。您可以使用
PigStorage(',')
将分隔符更改为逗号之类的内容

您有两个选择:

  • 将ebcdic中的数据转换为某种CSV格式(如果数据量不是问题,则可以使用单线程程序,如果是问题,则可以使用MapReduce作业)
  • 编写自定义ebcdic加载函数。你可以看看怎么做

可能是其他人实现了这一点,但在谷歌快速搜索后,我什么也没看到。

按照您的建议,我将能够加载如下数据:使用MyFun()作为(f1、f2、f3)加载“/user/enrico/FilesForPigs/IRIS.txt”;是吗?是的,没错。您必须在LOAD语句上方“注册”jar。对不起,您认为我应该使用什么来代替:public InputFormat getInputFormat()抛出IOException{return new TextInputFormat();}?您可以看看Pig的contrib库piggybank中如何处理其他自定义数据格式的一些示例: