GraphX ​​- файл класса, необходимый для Graph, отсутствует

Я новичок в Scala / Spark. Я пытаюсь скомпилировать и запустить образец кода GraphX. Ссылка на исходный файл: PageRank

Мой код слегка отредактирован, чтобы избежать проблем:

// scalastyle:off println
package org.apache.spark.examples.graphx
// $example on$
import org.apache.spark.graphx.GraphLoader
// $example off$
import org.apache.spark.sql.SparkSession
/**
 * A PageRank example on social network dataset
 * Run with
 * {{{
 * bin/run-example graphx.PageRankExample
 * }}}
 */
object PageRankExampl {
    def main(args: Array[String]): Unit = {
        // Creates a SparkSession.
        val spark = SparkSession
            .builder
            .appName("PageRankExampl")
            .getOrCreate()
        val sc = spark.sparkContext

        // $example on$
        // Load the edges as a graph
        val graph = GraphLoader.edgeListFile(sc, "data/graphx/followers.txt")
        // Run PageRank
        val ranks = graph.pageRank(0.0001).vertices
        // Join the ranks with the usernames
        val users = sc.textFile("data/graphx/users.txt").map { line =>
            val fields = line.split(",")
            (fields(0).toLong, fields(1))
        }
        val ranksByUsername = users.join(ranks).map {
            case (id, (username, rank)) => (username, rank)
        }
        // Print the result
        println(ranksByUsername.collect().mkString("\n"))
        // $example off$
        spark.stop()
    }
}
// scalastyle:on println

Файл сборки:

name := "hello"

version := "1.0"

libraryDependencies ++= Seq(
"org.apache.spark" % "spark-core_2.11" % "2.2.1" % "provided",
"org.apache.spark" % "spark-sql_2.11" % "2.2.1" % "provided",
"org.apache.spark" % "spark-graphx_2.11" % "2.2.1" % "provided"
)

Я получаю ошибку:

Запуск sbt: вызовите с помощью -help для других параметров

[информация] Установить текущий проект на приветствие (в файле сборки: /usr/local/spark-2.2.1-bin-hadoop2.7/nofel_test/)

›Run [info] Компиляция 1 исходного кода Scala в /usr/local/spark-2.2.1-bin-hadoop2.7/nofel_test/target/scala-2.9.1/classes ...

[ошибка] файл класса, необходимый для Graph, отсутствует.

[ошибка] ссылочный тип ClassTag отражения пакета относится к несуществующему символу.

[error] обнаружена одна ошибка

[ошибка] {файл: /usr/local/spark-2.2.1-bin-hadoop2.7/nofel_test/} default-b08e19 / compile: compile: Ошибка компиляции

[ошибка] Общее время: 2 с, завершено 26 марта 2018 г. 23:14:28


person Nofel Yaseen    schedule 27.03.2018    source источник


Ответы (1)


Я добавил одну строчку в файл сборки, и она сработала. Если кто-нибудь знает причину, по которой эта строка (scalaVersion) была необходима, дайте мне знать.

name := "PageRank"

version := "1.0"

scalaVersion := "2.11.8"

libraryDependencies ++= Seq(
     "org.apache.spark" % "spark-core_2.11" % "2.2.1" % "provided",
     "org.apache.spark" % "spark-sql_2.11" % "2.2.1" % "provided",
     "org.apache.spark" % "spark-graphx_2.11" % "2.2.1" % "provided"
 )
person Nofel Yaseen    schedule 17.07.2018