【问题标题】:Apache Spark: Exception in thread "main" java.net.URISyntaxException: Illegal character in path at index 0:Apache Spark:线程“main”中的异常 java.net.URISyntaxException:索引 0 处路径中的非法字符:
【发布时间】:2016-11-03 10:30:57
【问题描述】:

我一直在使用 apache spark(scala) 并使用 sbt 构建软件包。我能够构建包,但是当我做一个

./bin/spark-submit \  "/Users/Desktop/tranasactions/target/transaction_2.10-1.0.jar" --help

我不明白为什么会这样。

这是我的代码

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.graphx._
import org.apache.spark.rdd.RDD

object creditFraud {

def main(args: Array[String]) {

 val conf = new SparkConf().setAppName("Transaction")
 val sc = new SparkContext(conf)

 val graph = GraphLoader.edgeListFile(sc,"Users/grantherman/Desktop/transactionFile.csv")


println("GRAPHX: Number of vertices " + graph.vertices.count)
println("GRAPHX: Number of edges " + graph.edges.count)
    }
  }

这是 .sbt 文件:

name := "Transaction"

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.1" % "provided"

libraryDependencies += "org.apache.spark" %% "spark-graphx" % "1.3.1" % "provided"


resolvers ++= Seq(
"Akka Repository" at "http://repo.akka.io/releases/",
"Spray Repository" at "http://repo.spray.cc/")

【问题讨论】:

    标签: java apache-spark


    【解决方案1】:

    如果是单行输入,请去掉“\”,如下图:

    ./bin/spark-submit "/Users/Desktop/tranasactions/target/transaction_2.10-1.0.jar" --help
    

    “\”是 Bash 转义字符。如果您尝试输入较长的命令,可以将命令拆分为几行,例如:

    ./bin/spark-submit \ 
    "/Users/Desktop/tranasactions/target/transaction_2.10-1.0.jar" --help
    

    更新: 我之前的回答只关注“java.net.URISyntaxException”。

    为了运行 spark-submit,你可以参考它的文档:https://spark.apache.org/docs/1.1.0/submitting-applications.html

    对于您的情况,您可以在以下命令中执行您的 jar 文件(假设您的类名是 org.apache.spark.examples.SparkPi):

    ./bin/spark-submit --class org.apache.spark.examples.SparkPi "/Users/Desktop/tranasactions/target/transaction_2.10-1.0.jar"
    

    或将其拆分为多行:

    ./bin/spark-submit \ 
    --class org.apache.spark.examples.SparkPi \
    "/Users/Desktop/tranasactions/target/transaction_2.10-1.0.jar"
    

    您还可以指定您希望运行的核心数量(比如说 4 个核心):

    ./bin/spark-submit \ 
    --class org.apache.spark.examples.SparkPi \
    --master local[4] \
    "/Users/Desktop/tranasactions/target/transaction_2.10-1.0.jar"
    

    如果您不确定您的 jar 文件是否正常工作,我建议您在开始之前先试用 spark-examples-[version].jar。

    【讨论】:

    • 所以我摆脱了它,我不断得到它无法读取主类。是否需要添加参数类--“className”和master--local[4]?
    • 原始答案只关注您的主要错误“java.net.URISyntaxException”。我已经更新了我的答案,应该可以让您成功执行 spark-submit。
    猜你喜欢
    • 2023-04-04
    • 2016-11-02
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多