Я добавил дельта-зависимости в свой build.sbt
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % sparkVersion,
"org.apache.spark" %% "spark-sql" % sparkVersion,
"org.apache.spark" %% "spark-hive" % sparkVersion,
// logging
"org.apache.logging.log4j" % "log4j-api" % "2.4.1",
"org.apache.logging.log4j" % "log4j-core" % "2.4.1",
// postgres for DB connectivity
"org.postgresql" % "postgresql" % postgresVersion,
"io.delta" %% "delta-core" % "0.7.0"
Однако я не могу понять, какую конфигурацию должен содержать сеанс Spark. Приведенный ниже код не работает.
val spark = SparkSession.builder()
.appName("Spark SQL Practice")
.config("spark.master", "local")
.config("spark.network.timeout" , "10000000s")//to avoid Heartbeat exception
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
.getOrCreate()
Исключение -
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/catalyst/plans/logical/MergeIntoTable