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 Package และติดตั้งลงในที่เก็บข้อมูลในเครื่อง
  2. เพิ่ม Spark Package repository ลงใน 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 Error unresolved dependency: org.apache.spark#spark-sql_2.10_2.10;1.0.0: not found @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 ที่กล่าวถึงในคำตอบของGawędaไม่ได้ผลสำหรับฉัน ด้านล่างนี้ใช้งานได้:

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