intellij 에서 Spark를 Scala로 실행하는 도중 만난 에러
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession$
at ReadCsvGzExample$.main(ReadCsvGzExample.scala:6)
at ReadCsvGzExample.main(ReadCsvGzExample.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SparkSession$
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
... 2 more
종료 코드 1(으)로 완료된 프로세스
build.sbt 에 다음을 추가했었다
// https://mvnrepository.com/artifact/org.apache.spark/spark-sql
libraryDependencies += "org.apache.spark" %% "spark-sql" % "3.5.3" % "provided"
알고보니 provided 스코프 때문에 발생한 에러다.
intellij의 실행/디버그 구성을 편집하자.
기존 설정은 다음과 같다.
변경 후는 다음과 같다.
확인 후 실행하면 잘 실행된다.
'Data Engineering > Spark' 카테고리의 다른 글
[Spark] 클러스터 매니저 종류 (0) | 2025.01.17 |
---|---|
[Spark] Executor 개념 (0) | 2025.01.17 |
[Spark] 에러 - You can set "spark.sql.legacy.timeParserPolicy" to "LEGACY" to restore the behavior before Spark 3.0, or set to "CORRECTED" and treat it as an invalid datetime string. (0) | 2024.05.27 |
[Spark] Partition, Parquet 파일 크기 (0) | 2024.05.08 |
[Spark] Spill, 직렬화 메커니즘 (0) | 2024.05.08 |