Подтвердить что ты не робот

Проблемы с созданием простого приложения 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/"

Спасибо за помощь.

4b9b3361

Ответ 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/"