Проблемы с созданием простого приложения SparkSQL
Это довольно пустой вопрос.
Я пытаюсь узнать о SparkSQL. Я следовал примеру, описанному здесь:
http://spark.apache.org/docs/1.0.0/sql-programming-guide.html
Все отлично работает в Spark-shell, но когда я пытаюсь использовать sbt для создания пакетной версии, я получаю следующее сообщение об ошибке:
object sql is not a member of package org.apache.spark
К сожалению, я довольно новичок в sbt, поэтому я не знаю, как исправить эту проблему. Я подозреваю, что мне нужно включить дополнительные зависимости, но я не могу понять, как это сделать.
Вот код, который я пытаюсь скомпилировать:
/* TestApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
case class Record(k: Int, v: String)
object TestApp {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext._
val data = sc.parallelize(1 to 100000)
val records = data.map(i => new Record(i, "value = "+i))
val table = createSchemaRDD(records, Record)
println(">>> " + table.count)
}
}
Ошибка помечена в строке, где я пытаюсь создать SQLContext.
Вот содержимое файла sbt:
name := "Test Project"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.0"
resolvers += "Akka Repository" at "http://repo.akka.io/releases/"
Спасибо за помощь.
Ответы
Ответ 1
Как это часто бывает, ответ на вопрос помог мне выяснить ответ. Ответ заключается в том, чтобы добавить следующую строку в файл sbt.
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.0.0"
Я также понял, что в маленькой программе выше есть дополнительная проблема. В вызове createSchemaRDD слишком много аргументов. Эта строка должна выглядеть следующим образом:
val table = createSchemaRDD(records)
Ответ 2
Спасибо! Я столкнулся с аналогичной проблемой при создании приложения Scala в Maven. Основываясь на том, что вы сделали с SBT, я добавил соответствующие зависимости Maven следующим образом, и теперь я могу скомпилировать и сгенерировать файл jar.
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>1.2.1</version>
</dependency>
Ответ 3
У меня подобная проблема, в моем случае я просто скопировал вложенную ниже sbt-установку из онлайн с помощью scalaVersion: = "2.10.4", но в моей среде у меня действительно есть scala версия 2.11.8
обновил и выполнил пакет sbt снова, исправил
name := "Test Project"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.0"
resolvers += "Akka Repository" at "http://repo.akka.io/releases/"