我有一个带有密钥的序列文件,这是一个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?
答案 0 :(得分:0)
考虑到我不使用Elephant Bird的限制,我使用SequenceFileLoader读取文件并将该值发送到udf以解析json(在我的情况下,返回一个地图)。