본문 바로가기

Bigdata/spark

[spark] json 형태의 문자열을 dataframe으로 변환하는 방법

spark에서 json 파일을 읽어 dataframe 형태로 만들면 별도의 파싱 과정을 직접할 필요 없이 구조화된 데이터로 만들어 주기 때문에 굉장히 편리하게 개발을 할 수 있다.


val df = sqlContext.read.json("file.json")


때로는 json이 파일 형태로 존재하지 않고 데이터 처리과정에서 json 형태의 문자열을 dataframe으로 변환해야 할 경우가 있는데 sc.read.json 메소드는 문자열을 인자로 받지 않는다. 

그래서 특정 string 변수에 json 형태의 문자열이 존재할 경우 dataframe으로 변환하는 방법을 알아보겠다. 방법은 단순하다. 문자열을 Seq 형태로 만들고 parallelize 메소드를 이용해서 rdd 형태로 변환하면 dataframe으로 변환이 가능하다. 다음은 예제 코드이다.


val jsonStr = """{ "metadata": { "key": 84896, "value": 54 }}"""
val rdd = sc.parallelize(Seq(jsonStr))
val df = sqlContext.read.json(rdd)


'Bigdata > spark' 카테고리의 다른 글

spark cluster 환경 정리  (0) 2017.03.08
spark streaming에서 중요한 옵션 정리  (0) 2017.03.02