SBT в фреймах графа Apache-Spark

У меня есть следующий файл SBT, я компилирую код Scala с помощью Apache GraphFrame, а также читаю файл CSV.

name := "Simple"

version := "1.0"

scalaVersion := "2.10.5"

libraryDependencies ++= Seq(

"org.apache.spark" %% "spark-core" % "1.6.1",

"graphframes" % "graphframes" % "0.2.0-spark1.6-s_2.10",

"org.apache.spark" %% "spark-sql" % "1.0.0",

"com.databricks" % "spark-csv" % "1.0.3"
)

Вот мой код в Scala

import org.graphframes._
import org.apache.spark.sql.DataFrame
    val nodesList = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").load("/Users/Desktop/GraphFrame/NodesList.csv")
    val edgesList= sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").load("/Users/Desktop/GraphFrame/EdgesList.csv")
    val v=nodesList.toDF("id", "name")
    val e=edgesList.toDF("src", "dst", "dist")
    val g = GraphFrame(v, e)

Когда я пытаюсь создать файл Jar с помощью SBT, во время компиляции появляется следующая ошибка.

[trace] Stack trace suppressed: run last *:update for the full output.
[error] (*:update) sbt.ResolveException: unresolved dependency: graphframes#graphframes;0.2.0-spark1.6-s_2.10: not found
[error] Total time: 

person Yasir    schedule 12.12.2016    source источник


Ответы (3)


GraphFrames еще не находится в репозитории Maven Central.

Вы можете:

  1. скачайте артефакт на странице Spark Packages и установите в локальный репозиторий
  2. Добавьте репозиторий пакетов Spark в свой SBT build.sbt:

Код в build.sbt:

resolvers += Resolver.url("SparkPackages", url("https://dl.bintray.com/spark-packages/maven/"))
person T. Gawęda    schedule 12.12.2016
comment
Приведенный выше код работает нормально, но теперь у меня такая же проблема с импортом org.apache.spark.sql.DataFrame Ошибка неразрешенной зависимости: org.apache.spark#spark-sql_2.10_2.10;1.0.0: не найдено @T. Гавенда - person Yasir; 12.12.2016
comment
@Aroon У вас странная версия Spark SQL - 1.0.0, а Spark Core - 1.6.1. Измените версию Spark SQL также на 1.6.1. - person T. Gawęda; 12.12.2016
comment
@Aroon также удвоил версию версии Scala, предполагая, что вы изменили ее на "org.apache.spark" %% "spark-sql_2.10" % "1.0.0",. Пожалуйста, используйте %% или добавьте версию Scala. Итак: "org.apache.spark" %% "spark-sql" % "1.6.1", или "org.apache.spark" % "spark-sql_2.10" % "1.6.1", - person T. Gawęda; 12.12.2016
comment
Не работает для меня. Кажется, что пакет ДЕЙСТВИТЕЛЬНО существует на maven. Но SBT по какой-то причине не может решить эту проблему. httpsнеразрешенная зависимость: graphframes#graphframes;0.5.0-spark2.1-s_2.11: не найдено - person aclowkay; 15.06.2017

По какой-то причине Resolver.url, упомянутый в ответе Гавенды, у меня не работал, работало следующее:

resolvers += "SparkPackages" at "https://dl.bintray.com/spark-packages/maven"

libraryDependencies += "graphframes" % "graphframes" % "0.7.0-spark2.4-s_2.11"

person Diptanshu    schedule 14.03.2019

Мне удалось заставить его работать с помощью sbt-spark-package

В project/plugins.sbt я добавил:

resolvers += "bintray-spark-packages" at "https://dl.bintray.com/spark-packages/maven/"

addSbtPlugin("org.spark-packages" % "sbt-spark-package" % "0.2.5")

Затем в build.sbt я добавил:

spDependencies += "graphframes/graphframes:0.5.0-spark2.1-s_2.11"

И это сработало.

Надеюсь, поможет.

person Javier Alba    schedule 15.06.2017
comment
Это работает для меня. Просто обратите внимание, что если вы собираетесь использовать sbt-spark-package, убедитесь, что вы используете sbt 0.13.16, так как этот пакет не работает с sbt 1.1.1 (см. github.com/databricks/sbt-spark-package/issues/35) - person Shafique Jamal; 05.04.2018