2016-06-15 10 views
1

redshiftでcopyコマンドを使用してJSONオブジェクトにロードする際に問題が発生しました。コピーコマンドを使用しようとすると失敗するJSON形式のファイルを受け取りましたが、それが動作する底にファイル。JSONファイルが赤色シフトにロードされない

{ 
    "id": 1, 
    "name": "Major League Baseball" 
} 
{ 
    "id": 2, 
    "name": "National Hockey League" 
} 

これは

[ 
{"id":1,"name":"Major League Baseball"}, 
{"id":2,"name":"National Hockey League"} 
] 

これを(余分な角括弧に気づか)は動作しません:私はこれが正常に動作JSONファイル

を変更するpermiitedわけではないので、これは理想的なソリューションではありません私のjsonパスです

{ 
    "jsonpaths": [ 
     "$['id']", 
     "$['name']" 
    ] 
} 
+0

少し質問を明確にすることはできますか? –

+0

私はRedshiftにいくつかのJSONをコピーしようとしていますが、JSONにはこのデータの読み込みを中断する領域に「[」とカンマ(上記のJSONを参照)が含まれています。 – godzilla

+0

各行のデータは、最初の例のように別のjsonオブジェクトである必要があります。 jsonpaths仕様はリストですが、1つのオブジェクト内の列ロケータのリストです。 2番目の例をサポートするために、Redshiftは膨大なファイルを解析してから行の一部である値を決定する必要があります。 – systemjack

答えて

0

COPYコマンドの問題はありません実際には有効なJSONファイルを受け入れません。その代わりに、のJSON-per-lineは、ドキュメントにはshownですが、明らかに言及されていません。

したがって、すべての行は有効なJSONとみなされますが、完全なファイルはありません。そのため、ファイルを変更すると、そのファイルが機能します。

関連する問題