`+- Relation [_corrupt_record#8] json`

ssyyyoon·2024년 2월 22일

배경

spark에서 JSON file을 읽을 때, 아래와 같은 에러를 만난다.

pyspark.errors.exceptions.captured.AnalysisException: [UNRESOLVED_COLUMN.WITH_SUGGESTION] ~~[`_corrupt_record`].;
+- Relation [_corrupt_record#8] json

해결방안

before

from pyspark import SparkContext
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

df = spark.read.json("File_Path")

after

read option에 multiline=True 를 추가해준다.

from pyspark import SparkContext
from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

df = spark.read.json("File_Path", multiline=True) 

원인

기본적으로 Spark는 JSON 파일에 여러 줄 JSON이 아닌 JSON 줄 (JSONL 형식)이 있는 것으로 간주합니다 .
하지만, 평소에 자주 사용하는 형식의 JSON은

[{
  key1:value1
}
,{
  key2:value2
}
 .
 .
 .
]

이렇게 multiline으로 구성되어 있기 때문에, 해당 read option을 수동으로 설정해주어야 JSON 파일을 에러없이 읽을 수 있다.







모든 DA가 지저분한 JSON 파일을 안만나기를 빌며...

profile
데이터 분석가로 일하고 있습니다.

0개의 댓글