我有一个序列文件,它的关键字是json。这不是一个复杂的模式,它是这样的:
{
"id": "file",
"value": "File",
"popup": [
{
"value": "Open",
"onclick": "OpenDoc()"
}
]
}我知道您可以从文件中加载json,如下所示:
a = load 'a.json' using JsonLoader('[schema]'); 而这个存钱罐有一种加载序列文件的方法:
A = LOAD 'mydir/part-r-00000' USING SequenceFileLoader AS (key:long, val:long);在不将SequenceFileLoader的输出写入磁盘,然后使用JsonLoader (重新)加载的情况下,我如何组合这两者呢?
此外,我还在考虑使用Elephant Bird的SequenceFileLoader中的WritableConverters中的模式,但Elephant Bird需要安装协议缓冲区和配置单元。我在我的集群上没有太多的控制权来安装这些软件包。
我是不是一直在写UDF?
发布于 2015-11-18 05:06:16
考虑到我对不使用Elephant Bird施加的限制,我使用SequenceFileLoader读取文件,并将该值发送到udf中以解析出json (在我的示例中,返回一个映射)。
https://stackoverflow.com/questions/33749191
复制相似问题