java - Apache Spark : Exception in thread "main" java.net.URISyntaxException:索引 0 处的路径中存在非法字符:

标签 java apache-spark

我一直在使用 apache Spark(scala) 并使用 sbt 构建软件包。我能够构建包,但当我执行

时,我不断收到 Exception in thread "main"java.net.URISyntaxException: Illegal character in path at index 0:
./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/")

最佳答案

如果您在单行中输入命令,请删除“\”,这样它看起来像:

./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。

关于java - Apache Spark : Exception in thread "main" java.net.URISyntaxException:索引 0 处的路径中存在非法字符:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078482/

相关文章:

apache-spark - 在 Apache Spark 中延迟加载分区 Parquet

java - 强制或生成jvm核心转储(IBM JVM)

java - 适合应用程序的数据库

hadoop - 如何为查询结果添加一个整数唯一 ID - __efficiently__?

performance - Spark 最近 30 天过滤器,提高性能的最佳方法

apache-spark - 加载 Hive 表时 Spark 创建了多少个分区

hadoop - H2o 不工作的执行者数量

java - 屏幕上没有显示输出

java怎么替换?带有值的字符串

java - 如果 "metadata-complete"设置为 false,Tomcat 不会运行