如何使用mongo-hadoop从Pig上的BSON文件加载数组?

时间:2014-02-12 20:30:30

标签: mongodb hadoop apache-pig

我正在尝试使用com.mongodb.hadoop.pig.BSONLoader(https://github.com/mongodb/mongo-hadoop/blob/master/pig/README.md)将MongoDB BSON文件中的数据加载到Pig中,但我遇到了困难。 MongoDB上的数据包括可变大小的数组,我不知道如何将它加载到pig(作为元组?)。以下是MongoDB的示例记录:

{"_id": {"$oid": "52fbbca6e4b029a79cd17ff7"},
 "field": "value",
 "variableSizeArray": [
    "value1",
    "value2",
    "valueN"
 ]
}

我尝试了以下选项,但似乎没有一个可行:

raw = LOAD 'file:///tmp/teststreams.bson' using com.mongodb.hadoop.pig.BSONLoader('','field:chararray,variableSizeArray:()');
raw = LOAD 'file:///tmp/teststreams.bson' using com.mongodb.hadoop.pig.BSONLoader('','field:chararray,variableSizeArray:{T:(h:chararray)}');

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:2)

终于明白了。执行此操作的方法是不尝试指定数据类型。这有效:

raw = LOAD 'file:///tmp/teststreams.bson' using com.mongodb.hadoop.pig.BSONLoader('','field,variableSizeArray');