PySpark JSONL 로드 느릴때 Schema 제공으로 속도 높이기
🧶

PySpark JSONL 로드 느릴때 Schema 제공으로 속도 높이기

Tags
MLDL Framework
Dev
Published
Published July 14, 2023

문제

falcon_df = spark.read.parquet('/home/beomi/coding/kollama-dataset/falcon/data/*.parquet')
  • 위와 같이 Parquet 파일의 로딩은 ~1초수준으로 빠르게 끝나는데
  • 아래와 같이 여러 JSONL 파일의 로딩은 엄——청나게 오래 걸리는 현상
korean_df = spark.read.json([ '/home/beomi/coding/kollama-dataset/kcbert/*.jsonl', ])
 

해결법

from pyspark.sql import types as T # Define schema schema = T.StructType([ T.StructField("text", T.StringType(), True) ]) korean_df = spark.read.schema(schema).json([ '/home/beomi/coding/kollama-dataset/kcbert/*.jsonl', ])

도움 안되는 방법

spark.conf.set("spark.sql.repl.eagerEval.enabled", False)
  • Eager Eval을 끄는 것은 큰 도움이 안된다.
spark.read.option("inferTimestamp","false").option("prefersDecimal","false").json("/data/20200528/")
  • inferTimestampprefersDecimal 을 끄는 것도 도움이 안된다.
  • 애초에 위 두 방법은 로딩 이후 LazyComputing혹은 관련한 컬럼이 있을때나 의미가 있나 싶음.