【发布时间】:2019-03-13 16:48:37
【问题描述】:
在 Windows 10 机器上使用 spark-submit 执行 spark 作业时出现错误。命令是:
c:\workspaces\Spark2Demo>spark-submit --class retail_db.GetRevenuePerOrder --master local .\target\scala-2.12\spark2demo_2.12-0.1.jar c:\workspaces\data\retail_db\orders\part-00000 c:\workspaces\output
我得到的错误是:
2019-03-12 19:09:33 ERROR SparkContext:91 - Error initializing SparkContext.
org.apache.spark.SparkException: Could not parse Master URL: 'c:\workspaces\data\retail_db\orders\part-00000'
at org.apache.spark.SparkContext$.org$apache$spark$SparkContext$$createTaskScheduler(SparkContext.scala:2784)
at org.apache.spark.SparkContext.<init>(SparkContext.scala:493)
at retail_db.GetRevenuePerOrder$.main(GetRevenuePerOrder.scala:7)
at retail_db.GetRevenuePerOrder.main(GetRevenuePerOrder.scala)
文件存在并且可以访问。我能够在 IDE 中运行该程序。以下是程序:
package retail_db
import org.apache.spark.{SparkConf,SparkContext}
object GetRevenuePerOrder {
def main(args:Array[String]):Unit = {
val conf = new SparkConf().setMaster(args(0)).setAppName("GetRevenuePerOrder")
val sc = new SparkContext(conf)
sc.setLogLevel("DEBUG")
println(args)
val orderItems = sc.textFile(args(1))
val revenuePerOrder = orderItems.map(oi => (oi.split(",")(1).toInt, oi.split(",")(4).toFloat)).reduceByKey(_ + _).map(oi => (oi._1 + "," + oi._2))
revenuePerOrder.saveAsTextFile(args(2))
}
}
请帮忙。
【问题讨论】:
-
master-url 不是文件,而是主资源管理器的 url(用于分布式系统)。 spark.apache.org/docs/latest/…
-
为什么执行时抱怨主 url 无效。我已将主人作为本地人。
-
val conf = new SparkConf().setMaster(args(0))。在这里,您正在重置主 url。
-
谢谢阿普尔巴。这解决了这个问题。请将此添加为答案,以便我接受。
标签: apache-spark