Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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
使用spark submit将HashMap参数传递给Scala_Scala_Hashmap_Nosuchmethoderror_Spark Submit - Fatal编程技术网

使用spark submit将HashMap参数传递给Scala

使用spark submit将HashMap参数传递给Scala,scala,hashmap,nosuchmethoderror,spark-submit,Scala,Hashmap,Nosuchmethoderror,Spark Submit,我用hashmap作为参数定义一个主对象 def main(args: Map [ String, Any ] ) : Unit = { val v_COUNTRY_CODE =args("CTRY_CD").toString val v_REPORTING_DATE = args("REP_DT").toString val v_WorkSpaces = args("WS_NM").toString println("v_COUNTRY_CODE"+ v_C

我用hashmap作为参数定义一个主对象

def main(args: Map [ String, Any ]  )
: Unit = {

    val v_COUNTRY_CODE =args("CTRY_CD").toString
    val v_REPORTING_DATE = args("REP_DT").toString
    val v_WorkSpaces = args("WS_NM").toString
    println("v_COUNTRY_CODE"+ v_COUNTRY_CODE)
    println("v_REPORTING_DATE"+ v_REPORTING_DATE)
    println("v_WorkSpaces"+ v_WorkSpaces)
    println("Yes I am done")
    sys.exit()
}
运行
spark submit
时,如何传递
Hashmap
参数:

spark submit--verbose--name-SAMPLE--master thread--deploy-mode-client--class com.scb.transformations.factScbB3dqBalancesFload/CTRLFW/btrapp\u-nas/RUBIK/hdpbatch/appscripts/./lib/rubikdoard.jar{“HIVE\u-SCHEMA”->“Test”}

抛出一个错误:

线程“main”java.lang.NoSuchMethodException中的异常:com.scb.transformations.factScbB3dqBalancesFload.main([Ljava.lang.String;)

Scala中的main()方法需要Array[String]类型的参数。因此,您只能通过CLI将空格分隔的字符串作为参数传递。如果您进一步希望将参数用作映射,则只需为键和值选择一个分隔符;在代码中拆分它们并创建一个Scala映射。例如,如果分隔符为“=”,则您可以将CLI参数作为参数传递

配置单元模式=测试SomeOtherParam=SomeValue

在代码中,您可以创建一个类似

val confMap=args.map(x=>(x.split(“”)(0),x.split(“”)(1)).toMap