Я создаю приложение Spark с помощью bash-скрипта, и у меня есть только зависимости spark-sql и core в файле build.sbt.Поэтому каждый раз, когда я вызываю некоторые rdd-методы или преобразовываю данные в case-класс для создания набора данных, я получаю эту ошибку:
Caused by: java.lang.NoClassDefFoundError: scala/Product$class
Я подозреваю, что это ошибка зависимости.Итак, как мне изменить свои зависимости, чтобы это исправить?
список зависимостей:
import sbt._
object Dependencies {
lazy val scalaCsv = "com.github.tototoshi" %% "scala-csv" % "1.3.5"
lazy val sparkSql = "org.apache.spark" %% "spark-sql" % "2.3.3"
lazy val sparkCore = "org.apache.spark" %% "spark-core" % "2.3.3"
}
build.sbt file:
import Dependencies._
lazy val root = (project in file(".")).
settings(
inThisBuild(List(
scalaVersion := "2.11.12",
version := "test"
)),
name := "project",
libraryDependencies ++= Seq(scalaCsv, sparkSql, sparkCore),
mainClass in (Compile, run) := Some("testproject.spark.Main")
)
Я запускаю приложение spark с spark 2.3.3 как мой домашний каталог искры, как это:
#!/bin/sh
$SPARK_HOME/bin/spark-submit \
--class "testproject.spark.Main " \
--master local[*] \
target/scala-2.11/test.jar