2017-05-16 5 views
0

다음 JSON 파일이 있습니다.SparkSQL없이 JSON 파일을 구문 분석하는 방법은 무엇입니까?

{ 
    "reviewerID": "ABC1234", 
    "productID": "ABCDEF", 
    "reviewText": "GOOD!", 
    "rating": 5.0, 
}, 
{ 
    "reviewerID": "ABC5678", 
    "productID": "GFMKDS", 
    "reviewText": "Not bad!", 
    "rating": 3.0, 
} 

SparkSQL을 사용하지 않고 구문 분석하고 JSON 구문 분석기를 사용하고 싶습니다.

원하는 구문 분석 결과는 텍스트 파일입니다.

ABC1234::ABCDEF::5.0 
ABC5678::GFMKDS::3.0 

spark scala에서 json 파서를 사용하여 json 파일을 구문 분석하는 방법은 무엇입니까?

답변

1

tl; dr Spark SQL은 파일 당 또는 행당 하나의 JSON 형식으로 JSON을 지원합니다. 단일 파일에 함께 표시 될 수있는 여러 줄의 JSON을 구문 분석하려면 현재 이 아니기 때문에 사용자가 직접 Spark 지원을 작성해야합니다.이 현재 가능합니다.

가능한 해결책은 "writer"(파일을 더 좋게 작성하고 파일 당 하나의 JSON을 저장하는 프로세스)에 질문하여 인생을 훨씬 더 달게 만듭니다.

그다지 도움이되지 않는다면, 파서로 mapPartitions 변형을 사용해야하고 어떻게 든 파싱을해야합니다.

val input: RDD[String] = // ... load your JSONs here 
val jsons = jsonRDD.mapPartitions(json => // ... use your JSON parser here) 
+0

우리는 각각의 json이 분리 된 파티션에만있을 것임을 확인합니다. 둘 다 jsons가 같은 파티션에 나타날 수 있습니다. –

+0

죄송합니다 ... TT는 이해가 안됩니다 .. 좀 더 구체적으로 설명해 주시겠습니까? – DaehyunPark

관련 문제