2017-07-20 4 views
1

は、私はこのような内容を持つファイルを持っている:JSONファイルの一部をDataFrameにロードするには?

a {"field1":{"field2":"val","field3":"val"...}} 
b {"field1":{"field2":"val","field3":"val"...}} 
... 

と私はこのようなテーブルにファイルをロードすることができました:

╔════╦════════════════════════════════════════════════ 
║ ID ║ JSON           ║ 
╠════╬════════════════════════════════════════════════ 
║ a ║ {"field1":{"field2":"val","field3":"val"...}} ║ 
║ b ║ {"field1":{"field2":"val","field3":"val"...}} ║ 
╚════╩════════════════════════════════════════════════ 

がどのように私はこのような何かにそれを作ることができますか?

╔════╦═════════════════════════════════════ 
║ ID ║ field2 ║field3 ║...  ║...  ║ 
╠════╬═════════════════════════════════════ 
║ a ║ val  ║val ║..  ║...  ║ 
║ b ║ val  ║val ║..  ║...  ║ 
╚════╩═════════════════════════════════════ 

それは部分的なJSONファイルがあるので、私が行うことはできませんread.json私はこの記事があまりにもconvert lines of json in RDD to dataframe in apache Spark しかし、私のJSON文字列がネストされたJSONであり、それは非常に長いので、私はすべて一覧表示する必要はありません見 フィールド。 また、私はうまく動作しませんでした

#solr_data is the data frame made from the file, and json is the column with the json string, session is a SparkSession 
json_table = solr_data.select(solr_data["json"]).rdd.map(lambda x:session.read.json(x)) 

を試してみました。私にはもcollect()もありません。そのためにcreateDataFrame()も機能しませんでした。

+0

正確なコンテンツはどのように見えますか?サンプルを投稿する心ですか? '長い文字列'とは何ですか?それらは 'val'sにどのように関連していますか? – philantrovert

答えて

0

select("JSON.field1.*")を使用して、サブJSONを列に「分解する」。

関連する問題