2016-10-21 3 views

答えて

0

残念ながら、これを行う標準的な方法はありません。

1つのファイルに複数のYAML「ドキュメント」が含まれるように明確に定義されているYAMLとは異なり、JSONにはそのような標準はありません。

問題を解決する1つの方法は、独自の「オブジェクトセパレータ」を作成することです。たとえば、改行文字を使用して、隣接するJSONオブジェクトを区切ることができます。 JSONエンコーダに改行文字を出力しないよう伝えることができます(\nにエスケープすることによって)。 JSONデコーダは、2つのJSONオブジェクトを分離しない限り、改行文字を認識しない限り、一度に1行ずつ読み込み、各行をデコードできます。

suggested JSON配列を使用して複数のJSONオブジェクトを格納することもできますが、それはもはや「ストリーム」にはなりません。

0

シーケンスファイルの内容をRDD [String]に読み込んでSpark Dataframeに変換することができます。

val seqFileContent = sc 
    .sequenceFile[LongWritable, BytesWritable](inputFilename) 
    .map(x => new String(x._2.getBytes)) 
val dataframeFromJson = sqlContext.read.json(seqFileContent) 
関連する問題