0

私はApache sparkには新しく、これを回避するいくつかのPOCを試しています。私は構造化されているjsonログを読み込もうとしていますが、いくつかのフィールドは常に保証されているとは限りません。例えば、 { "item": "A", "customerId": 123, "hasCustomerId": true, . . . }, { "item": "B", "hasCustomerId": false, . . . } } これらのJSONログをCSVに変換すると仮定します。単純なSelect文ですが、2番目のJSONにはフィールドがありません(識別子はありますが)、どうすればこのことを処理できるか分かりません。JSONログの選択(無視されます)Spark SQL

私は

item, customerId, .... 

A , 123  , .... 

B , null/0 , .... 
+0

あなたは私だけでJSONを読み取ることができるようになりますsqlContext.read.json(パス) –

+0

を使用することができますが、私は行方不明のフィールドを読んで詳細については心配です – fireants

答えて

-1

に上記のJSONログを変換したいあなたはJOSNファイルを読むためにSqlContextを使用する必要があり、sqlContext.read.json("file/path")しかし、あなたはその後、CSVに変換したい場合は、欠損値でそれを読みたいです。あなたのCSVファイルは、

item,customerId,hasCustomerId, .... 
A,123,, .... // hasCustomerId is null 
B,,888, .... // customerId is null 

のように見えるはずです。そして、あなたは次のようにこれを読まなければならない

val df = sqlContext.read 
    .format("com.databricks.spark.csv") 
    .option("header", "true") // Use first line of all files as header 
    .option("inferSchema", "true") // Automatically infer data types 
    .load("file/path") 
関連する問題