如何从猪的序列文件中获取json密钥

时间:2015-11-17 04:30:52

标签: json apache-pig

我有一个带有密钥的序列文件,这是一个json。它不是一个复杂的架构,它的基础是:

{
  "id": "file",
  "value": "File",
  "popup": [
    {
      "value": "Open",
      "onclick": "OpenDoc()"
    }
  ]
}

我知道你可以从这样的文件中加载json:

a = load 'a.json' using JsonLoader('[schema]');  

并且piggybank有一种加载序列文件的方法:

A = LOAD 'mydir/part-r-00000' USING SequenceFileLoader AS (key:long, val:long);

如何在不必将SequenceFileLoader的输出写入磁盘然后使用JsonLoader(重新)加载的情况下将两者结合起来?

另外,我正在使用Elephant Bird的SequenceFileLoader中的WritableConverters中找到的模式,但Elephant Bird需要安装协议缓冲区和配置单元。我没有太多控制我的群集来安装这些软件包。

我是否坚持编写UDF?

1 个答案:

答案 0 :(得分:0)

考虑到我不使用Elephant Bird的限制,我使用SequenceFileLoader读取文件并将该值发送到udf以解析json(在我的情况下,返回一个地图)。