2017-02-15 2 views
0

Я получаю ошибку Module not found в Scala. Я пытаюсь получить соединение jdbc с Oracle, объединить две таблицы и затем распечатать их.Scala Oracle JDBC

Мой файл является Scala

import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 
import org.apache.spark.sql.SQLContext 

object sparkJDBC { 
    def main(args: Array[String]): Unit = { 
    val conf = new SparkConf().setAppName("Simple  
     Application").setMaster("local[2]").set("spark.executor.memory","1g") 
    val sc = new SparkContext(conf) 
    var sqlContext = new SQLContext(sc) 
    val chrttype = sqlContext.load("jdbc", 
     Map("url" -> "jdbc:oracle:thin:gductv1/[email protected]//localhost:1521/XE", 
     "dbtable" -> "chrt_typ")) 
    val clntlvl1 = sqlContext.load("jdbc", 
     Map("url" -> "jdbc:oracle:thin:gductv1/[email protected]//localhost:1521/XE", 
     "dbtable" -> "clnt_lvl1")) 
    val join2 = 
     chrttyp.join(clntlvl1,chrttyp.col("chrt_typ_key")===clntlvl1("lvl1_key")) 
    join2.foreach(println) 
    join2.printSchema() 
    } 
} 

Мой файл build.sbt является

name := "sparkJDBC" 
    version := "0.1" 
    scalaVersion := "2.11.7" 

    libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.1" 
    libraryDependencies += "org.apache.tika" % "tika-core" % "1.11" 
    libraryDependencies += "org.apache.tika" % "tika-parsers" % "1.11" 
    libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "2.7.1" 
    libraryDependencies += "org.apache.spark" % "spark-sql" % "1.0.0" 

Файл ошибка

[warn] module not found: org.apache.spark#spark-sql;1.0.0 
[warn] ==== local: tried 
[warn] C:\Users\.ivy2\local\org.apache.spark\spark-sql\1.0.0\ivys\ivy.xml 
[warn] ==== public: tried 
[warn] https://repo1.maven.org/maven2/org/apache/spark/spark-sql/1.0.0/spark-sql-1.0.0.pom 
[info] Resolving jline#jline;2.12.1 ... 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: org.apache.spark#spark-sql;1.0.0: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 

[error] (*:update) sbt.ResolveException: unresolved dependency: org.apache.spark#spark-sql;1.0.0: not found 

Пожалуйста, помогите мне понять, что причиной этого.

+0

проблема: ток Резольвер не имеет зависимостей, вы спрашиваете –

ответ

0

spark-sql - библиотека Scala, такая как spark-core, поэтому вам нужно %% между именем группы и именем артефакта таким же образом. Используйте % между ними только для библиотек Java. См. http://www.scala-sbt.org/0.13/docs/Cross-Build.html по причине, по которой вам необходимо %%.

0

Для того, чтобы быть уверенным, чтобы иметь правильную зависимость, вы можете использовать веб-сайт как mvnrepository: https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10/1.0.0

libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "1.0.0" 
+0

Это был большой указатель Томаса. У меня больше нет проблемы с «Модулем не найден», но вот ошибка теперь [ошибка]. Модули были разрешены с конфликтующими суффиксами перекрестной версии в файле {file:/C: /apps/spark-2.1.0/ScalaFiles/ } scalafil es: [error] org.json4s: json4s-ast _2.11, _2.10 [error] com.twitter: chill _2.11, _2.10 [error] org.json4s: json4s-jackson _2.11, _2.10 [ошибка] org.json4s: json4s-core _2.11, _2.10 [ошибка] org.apache.spark: spark-core _2.11, _2.10 –

+0

Я удалил Scala Ссылка на версию в файле .sbt (scalaVersion: = "2.11.7"), и тогда она не давала мне противоречивой кросс-версии. Теперь он дает мне некоторую ошибку SQLContext, но она прошла первое препятствие. Спасибо Томасу и Алексею за быстрый ответ. –