我有一个小的sparkscala作业,它包含几个参数,即http\u endpoint
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提交工作纱。
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)
我甚至在我发送的url周围使用了语音引号,但是失败了。当我在第10行的代码中硬编码时,它就工作了。你知道我怎样才能让它在通过arg考试后继续工作吗?
1条答案
按热度按时间plicqrtu1#
尝试使用传递参数
--conf spark.driver.args="<args>"
在代码使用中spark.sparkContext.getConf.get()
为了得到论点。