1

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

目前我已经保存了文件并尝试按如下方式加载它:

A = LOAD '/user/enrico/FilesForPigs/IRIS.txt' AS (f1,f2,f3);

它似乎有效,但是当我尝试输入: DUMP A; 我收到一个错误。

编辑:

按照唐纳德的建议,我正在尝试创建一个 Java 程序来进行转换,特别是我正在尝试创建自己的 LOAD 函数。

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

@Override
    public InputFormat getInputFormat() {


        return new TextInputFormat();
    }

这是我找到的示例,但 TextInputFormat 不适合我的情况。你知道我该如何解决吗?

谢谢

4

1 回答 1

2

不,默认存储机制假定数据是由制表符分隔的 ASCII。您可以使用PigStorage(',')将分隔符更改为逗号之类的东西。

你有两个选择:

  • 将数据从 ebcdic 转换为某种 CSV 格式(如果数据量不是问题,您可以使用单线程程序执行此操作,如果是问题,则可以使用 MapReduce 作业)
  • 编写一个自定义的 ebcdic 加载函数。你可以在这里看到如何做到这一点。

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

于 2014-07-21T16:48:46.167 回答