【问题标题】:How to load _id Data from mongodb into Apache Pig如何将 _id 数据从 mongodb 加载到 Apache Pig
【发布时间】:2014-08-01 13:20:54
【问题描述】:

我是 Hadoop 和 Apache Pig 的新手。 我在 mongodb 中有一个名为 user 的集合,具有以下结构。我想通过以下方式将 _id 加载到 Apache Pig 中:

B = LOAD 'mongodb://localhost:27017/test.user' USING com.mongodb.hadoop.pig.MongoLoader ('_id:chararray,firstName:chararray,email:chararray') AS (UID,NAME,EMAIL);

但我无法加载它。名称和电子邮件已完美加载。

我正在使用这些 jar 文件

REGISTER /<path>/avro-1.7.5.jar
REGISTER /<path>/json-simple-1.1.jar
REGISTER /<path>/piggybank.jar
REGISTER /<path>/mongo-2.10.0.jar;
REGISTER /<path>/mongo-hadoop-core-1.1.0-SNAPSHOT.jar;
REGISTER /<path>/mongo-hadoop-pig-1.1.0-SNAPSHOT.jar;
REGISTER /<path>/mongo-hadoop-1.1.0-SNAPSHOT.jar;

用户集合的结构如下

   {
"_class" : "UserInfo",
"_id" : ObjectId("51daf2ffed4d31f6"),
"assignments" : 0,
"contests" : 0,
"contes" : 0,
"email" : "princ@bank.com",
"firstName" : "Princessj",
"freeUploadsAllowed" : 2,
"freeUploadsDone" : 0,
"guideViewCount" : 0,
"hofAssignment" : 0,
"hofContest" : 0,
"inviteCount" : 0,
"issueType" : 0,

}

怎么可能,请帮帮我。

【问题讨论】:

  • 传递一些 id 别名作为 MongoLoader 的第二个参数。在此处查看有关 idAlias 的详细信息github.com/mongodb/mongo-hadoop/blob/master/pig/README.md
  • @KonstantinV.Salikhov 感谢您的回复,但我尝试过这样 B = LOAD 'mongodb://localhost:27017/test.user' USING com.mongodb.hadoop.pig.MongoLoader ('id ,firstName:chararray,email:chararray','id') AS (UID,NAME,EMAIL);我得到了这个错误:解析失败:Pig 脚本解析失败: pig 脚本无法验证:java.lang.RuntimeException:无法在 org.apache.pig 使用参数“[id,firstName:chararray,email:chararray,id]”实例化“com.mongodb.hadoop.pig.MongoLoader” .parser.QueryParserDriver.parse(QueryParserDriver.java:196)

标签: mongodb hadoop github apache-pig


【解决方案1】:

来自Pig Usage

您需要做的就是将别名设置为“id”

raw = LOAD 'mongodb://localhost:27017/demo.yield_historical.in' using com.mongodb.hadoop.pig.MongoLoader('id, bc10Year', 'id');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多