[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.
val result: DataFrame = sqlContext.read.json(path) result.write.json("/yourPath")
방법 쓰기는 클래스 DataFrameWriter에 있으며 DataFrame 객체에 당신에게 액세스 할 수 있어야합니다. 그냥 확인하십시오 RDD 유형 DataFrame 인 것이 아니라 사용되지 않는 유형 SchemaRdd의합니다. 당신은 명시 적으로 타입 정의의 발 데이터를 제공 할 수 DataFrame 또는 캐스트를 dataFrame에 toDF와 ().
-
==============================
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.
sqlContext.read().json(dataFrame.toJSON())
-
==============================
4.당신은 여전히 JSON으로 Dataframe를 변환하는 방법을 알아낼 수없는 경우 스파크 기능 붙박이 to_json 또는 toJSON을 사용할 수 있습니다.
당신은 여전히 JSON으로 Dataframe를 변환하는 방법을 알아낼 수없는 경우 스파크 기능 붙박이 to_json 또는 toJSON을 사용할 수 있습니다.
당신은 샘플 Dataframe 및 변환에 JSON의 형식이 있으면 알려주세요.
from https://stackoverflow.com/questions/31473215/how-to-convert-dataframe-to-json by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 왜 튜플에 대한 스칼라의 구문은 매우 특별하다? (0) | 2019.11.28 |
---|---|
[SCALA] 멀티 클래스 분류 예 불꽃 (0) | 2019.11.28 |
[SCALA] 스칼라 정규식은 여러 줄 옵션을 사용 (0) | 2019.11.28 |
[SCALA] 어떻게 두 DataFrames 사이의 대칭 차이를 구하는 방법? (0) | 2019.11.28 |
[SCALA] 어떻게 실패에도 불구하고 미래의 순서를 실행을 계속합니다? (0) | 2019.11.28 |