Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala java.net.MalformedURLException:无协议:将参数传递给spark submit作业时为null_Scala_Apache Spark_Url - Fatal编程技术网

Scala java.net.MalformedURLException:无协议:将参数传递给spark submit作业时为null

Scala java.net.MalformedURLException:无协议:将参数传递给spark submit作业时为null,scala,apache-spark,url,Scala,Apache Spark,Url,我有一个小spark scala作业,它包含几个参数,即http\u端点 import scalaj.http.{Http, HttpOptions} 1 object Main extends App { 2 3 val master = args(0) 4 val http_endpoint = args(1) 5 ... 6 ... 7 8 def sendRequest = ( text: String ) => { 9 println("##

我有一个小spark scala作业,它包含几个参数,即http\u端点

import scalaj.http.{Http, HttpOptions}

1 object Main extends App {
2
3   val master = args(0)
4   val http_endpoint = args(1)
5   ...
6   ...
7   
8   def sendRequest = ( text: String ) => {
9      println("#####################: " + http_endpoint)
10     val result = Http(http_endpoint)
11    ...
12    ...
13  }
然后我将此作为spark提交作业发送给Thread

spark-submit \
--master yarn \
my-job-example-assembly-1.0.0-SNAPSHOT.jar \
yarn \
"http://my-url-example-12311.us-west-1.elb.amazonaws.com/my/app"
错误:

#####################: null
Caused by: java.net.MalformedURLException: no protocol: null
    at java.net.URL.<init>(URL.java:611)
    at java.net.URL.<init>(URL.java:508)
    at java.net.URL.<init>(URL.java:457)
    at scalaj.http.HttpRequest.exec(Http.scala:343)
    at scalaj.http.HttpRequest.asString(Http.scala:492)
:空
原因:java.net.MalformedURLException:无协议:null
在java.net.URL.(URL.java:611)
位于java.net.URL。(URL.java:508)
在java.net.URL.(URL.java:457)
位于scalaj.http.HttpRequest.exec(http.scala:343)
位于scalaj.http.HttpRequest.asString(http.scala:492)

我甚至在我发送的URL周围使用了语音引号,但它失败了。当我在第10行的代码中硬编码时,它会工作。知道如何在作为arg传递时仍能使其工作吗?

尝试使用
--conf spark.driver.args=“”

  • 在代码中,使用
    spark.sparkContext.getConf.get()
    获取参数

示例:

spark-shell --conf spark.driver.args="yarn http://my-url-example-12311.us-west-1.elb.amazonaws.com/my/app"

val arg0=spark.sparkContext.getConf.get("spark.driver.args").split("\\s+")(0)
//String = yarn
val arg1=spark.sparkContext.getConf.get("spark.driver.args").split("\\s+")(1)
//String = http://my-url-example-12311.us-west-1.elb.amazonaws.com/my/app

尝试使用
--conf spark.driver.args=“”

  • 在代码中,使用
    spark.sparkContext.getConf.get()
    获取参数

示例:

spark-shell --conf spark.driver.args="yarn http://my-url-example-12311.us-west-1.elb.amazonaws.com/my/app"

val arg0=spark.sparkContext.getConf.get("spark.driver.args").split("\\s+")(0)
//String = yarn
val arg1=spark.sparkContext.getConf.get("spark.driver.args").split("\\s+")(1)
//String = http://my-url-example-12311.us-west-1.elb.amazonaws.com/my/app

已尝试但失败,出现相同错误…您是否可以通过打印
master
http_endpoint
进行检查,以查看您是否能够获取值?打印为空,已更新我的问题我已在本地/纱线客户机/纱线群集模式下测试了以下代码,并按预期工作!已尝试但失败,出现相同错误…您是否可以通过打印
master
http_endpoint
进行检查,以查看您是否能够获取值?打印为空,已更新我的问题我已在本地/纱线客户机/纱线群集模式下测试了以下代码,并按预期工作!