我正在尝试使用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)}');
感谢您提供任何帮助。
答案 0 :(得分:2)
终于明白了。执行此操作的方法是不尝试指定数据类型。这有效:
raw = LOAD 'file:///tmp/teststreams.bson' using com.mongodb.hadoop.pig.BSONLoader('','field,variableSizeArray');