2

私はcdh5クイックスタートvmを使用しており、次のようなファイルがあります(ここでは完全ではありません):

{"user_id": "kim95",
 "type": "Book",
 "title": "Modern Database Systems: The Object Model, Interoperability, and
Beyond.",
 "year": "1995",
 "publisher": "ACM Press and Addison-Wesley",
 "authors": {},
 "source": "DBLP"
}
{"user_id": "marshallo79",
 "type": "Book",
 "title": "Inequalities: Theory of Majorization and Its Application.",
 "year": "1979",
 "publisher": "Academic Press",
 "authors": {("Albert W. Marshall"), ("Ingram Olkin")},
 "source": "DBLP"
}

そして、私はこのスクリプトを使用しました:

books = load 'data/book-seded.json'
        using JsonLoader('t1:tuple(user_id:
chararray,type:chararray,title:chararray,year:chararray,publisher:chararray,source:chararray,authors:bag{T:tuple(author:chararray)})');

STORE books INTO 'book-no-seded.tsv';

スクリプトは機能しますが、生成されたファイルは空です。

4

3 に答える 3

1

最後に、このスキーマのみが機能しました。この構成とは異なるスペースを追加または削除すると、エラーが発生します(タプルに「名前」を追加し、空の場合は「null」を指定し、作成者と作成者の間の順序を変更しましたソースですが、この構成がなくてもまだ間違っています)

{"user_id": "kim95", "type": "Book","title": "Modern Database Systems: The Object Model, Interoperability, and Beyond.", "year": "1995", "publisher": "ACM Press and Addison-Wesley", "authors": [{"name":null"}], "source": "DBLP"}
{"user_id": "marshallo79", "type": "Book", "title": "Inequalities: Theory of Majorization and Its Application.", "year": "1979", "publisher": "Academic Press", "authors": [{"name":"Albert W. Marshall"},{"name":"Ingram Olkin"}], "source": "DBLP"}

そして、作業スクリプトは次のとおりです。

books = load 'data/book-seded-workings-reduced.json'
        using JsonLoader('user_id:chararray,type:chararray,title:chararray,year:chararray,publisher:chararray,authors:{(name:chararray)},source:chararray');

STORE books INTO 'book-table.csv';  //whether .tsv or .csv
于 2014-07-30T23:16:46.613 に答える
0

USING org.apache.pig.piggybank.storage.JsonStorage(); を使用して「book-no-seded.tsv」に本を保存してみてください。

于 2014-07-27T01:13:53.403 に答える