0

HDFSからCouchbaseにデータをエクスポートしようとしていますが、ファイル形式に問題があります。

私の構成:

  • Couchbaseサーバー2.0
  • スタックhadoopcdh4.1.2
  • sqoop 1.4.2(hadoop2.0.0でコンパイル)
  • couchbase / hadoopコネクタ(hadoop2.0.0でコンパイル)

exportコマンドを実行すると、次のような形式のファイルを簡単にエクスポートできます。

id,"value"

また

id,42

また

id,{"key":"value"}

しかし、Jsonオブジェクトを適用したい場合、それは機能しません!

id,{"key1":"value1,"key2":"value2"}

コンテンツが正しいJSONではないため、コンテンツは最初のコンマで切り捨てられ、base64でcouchbaseによって表示されます...

だから、私の質問は、ファイルをjsonドキュメントとして保存するためにどのようにフォーマットする必要があるかということです。

キー/値ファイルのみをエクスポートできますか?

cbdocloaderがローカルファイルシステムからのファイルでそれを行うように、HDFSからjsonファイルをエクスポートしたい...

4

3 に答える 3

0

Sqoop が入力ファイルを区切り記号としてコンマを使用して CSV として解析しているため、この予想される動作が残念です。ファイル形式を微調整して、セパレーターをエスケープするか、JSON 文字列全体を囲む必要がある場合があります。ユーザー ガイド [1] で、Sqoop がどのように正確にセパレータのエスケープと文字列の囲みを処理しているかを読むことをお勧めします。

リンク:

http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#id387098

于 2013-01-12T08:30:47.400 に答える
0

まだこれに取り組んでいる場合は、ファイルをタブ区切りに変換するのが最善の策だと思います。Sqoop のドキュメント ( http://archive.cloudera.com/cdh/3/sqoop/SqoopUserGuide.html#_large_objects )を見ると、Sqoop が分割する文字を指定できるオプション --fields-terminated-by があります。フィールドをオンにします。

--fields-terminated-by '\t' とタブ区切りファイルを渡した場合、JSON にコンマがそのまま残ります。

于 2013-05-02T16:57:35.030 に答える
0

@mpiffaretti sqoop export コマンドを投稿できますか? 各 JSON オブジェクトには独自のキー値が必要だと思います。 key1 {"dataOne":"ValueOne"} key2 {"dataTwo":"ValueTwo"} http://ajanacs.weebly.com/blog あなたのケースでは、以下のように日付を変更すると問題が解決する場合があります。

id,{"key":"value"}
 id2,{"key2":"value2"}

さらに質問がある場合はお知らせください。[json] [sqoopexport] [カウチベース]

于 2017-06-18T00:10:49.957 に答える