복붙노트

[SCALA] 어떻게 JSON으로 DataFrame를 변환하는?

SCALA

어떻게 JSON으로 DataFrame를 변환하는?

나는 거대한 JSON 파일로 다음과 그것에서 작은 부분을 가지고 :

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

나는 다음과 같은 측면보기 사회 뉴스에 폭발 적용했습니다 :

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")

지금은 파일에 JSON과 저장이 결과 (DataFrame를) 다시 변환 할,하지만 난 변환을 할 수있는 스칼라 API를 찾을 수 없습니다입니다. 이 작업을 수행하는 표준 라이브러리 또는 그것을 알아낼 수있는 방법이 있습니까?

해결법

  1. ==============================

    1.

    val result: DataFrame = sqlContext.read.json(path)
    result.write.json("/yourPath")
    

    방법 쓰기는 클래스 DataFrameWriter에 있으며 DataFrame 객체에 당신에게 액세스 할 수 있어야합니다. 그냥 확인하십시오 RDD 유형 DataFrame 인 것이 아니라 사용되지 않는 유형 SchemaRdd의합니다. 당신은 명시 적으로 타입 정의의 발 데이터를 제공 할 수 DataFrame 또는 캐스트를 dataFrame에 toDF와 ().

  2. ==============================

    2.당신이 DataFrame이있는 경우 JSON 기록을 포함하는 RDD [문자열]로 다시 변환하는 API가있다.

    당신이 DataFrame이있는 경우 JSON 기록을 포함하는 RDD [문자열]로 다시 변환하는 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)
    

    이것은 이후 스파크 1.4에서 사용할 수 있습니다. 사용자가 만든 결과 DataFrame에 API를 호출합니다.

    사용할 수있는 API는 다음과 같습니다

  3. ==============================

    3.

    sqlContext.read().json(dataFrame.toJSON())
    
  4. ==============================

    4.당신은 여전히 ​​JSON으로 Dataframe를 변환하는 방법을 알아낼 수없는 경우 스파크 기능 붙박이 to_json 또는 toJSON을 사용할 수 있습니다.

    당신은 여전히 ​​JSON으로 Dataframe를 변환하는 방법을 알아낼 수없는 경우 스파크 기능 붙박이 to_json 또는 toJSON을 사용할 수 있습니다.

    당신은 샘플 Dataframe 및 변환에 JSON의 형식이 있으면 알려주세요.

  5. from https://stackoverflow.com/questions/31473215/how-to-convert-dataframe-to-json by cc-by-sa and MIT license