web-dev-qa-db-ja.com

DataFrameをJsonに変換する方法は?

私は巨大なJsonファイルを持っていますが、その一部は次のとおりです。

{
    "socialNews": [{
        "adminTagIds": "",
        "fileIds": "",
        "departmentTagIds": "",
        ........
        ........
        "comments": [{
            "commentId": "",
            "newsId": "",
            "entityId": "",
            ....
            ....
        }]
    }]
    .....
    }

次のように、socialNewsに側面ビューの爆発を適用しました。

val rdd = sqlContext.jsonFile("file:///home/ashish/test")
rdd.registerTempTable("social")
val result = sqlContext.sql("select * from social LATERAL VIEW explode(socialNews) social AS comment")

今、この結果(DataFrame)をjsonに変換してファイルに保存したいのですが、変換を行うためのscala apiを見つけることができません。これを行う標準ライブラリはありますか?またはそれを把握する方法はありますか?

16
ashish.garg
_val result: DataFrame = sqlContext.read.json(path)
result.write.json("/yourPath")
_

メソッドwriteはクラス DataFrameWriter にあり、DataFrameオブジェクトでアクセスできる必要があります。 rddがDataFrame型であり、非推奨のSchemaRdd型ではないことを確認してください。型定義_val data: DataFrame_を明示的に提供するか、toDF()を使用してdataFrameにキャストできます。

25
Nikita

DataFrameがある場合、jsonレコードを含むRDD [String]に変換するAPIがあります。

val df = Seq((2012, 8, "Batman", 9.8), (2012, 8, "Hero", 8.7), (2012, 7, "Robot", 5.5), (2011, 7, "Git", 2.0)).toDF("year", "month", "title", "rating")
df.toJSON.saveAsTextFile("/tmp/jsonRecords")
df.toJSON.take(2).foreach(println)

これはSpark 1.4以降で利用可能です。作成した結果のDataFrameでAPIを呼び出します。

利用可能なAPIがリストされています こちら

19
MrChristine
sqlContext.read().json(dataFrame.toJSON())
4
abhijitcaps

それでもDataframeをJSONに変換する方法がわからない場合は、to_jsonまたはtoJSON inbuilt Spark関数を使用できます。

サンプルのDataframeと変換するJSONのフォーマットがある場合はお知らせください。

0
Chetan Tamballa