Spark 提交中的 Json 参数



My spark-submit 命令:

spark-submit --deploy-mode cluster --class spark_package.import_jar s3://test-system/test.jar "{"localparameter" : {"mail": "", "clusterid": "test", "clientCd": "1000", "processid": "1234"} }"  

在这里,我想将clientCd作为参数传递给我的Scala代码。

我的斯卡拉代码:

package Spark_package
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
object SampleFile {
  def main(args: Array[String]) {
    val spark = SparkSession.builder.master("local[*]").appName("SampleFile").getOrCreate()
    val sc = spark.sparkContext
    val conf = new SparkConf().setAppName("SampleFile")
    val sqlContext = spark.sqlContext

    val df = spark.read.format("csv").option("header","true").option("inferSchema","true").load("s3a://test-system/data/*.gz")
    df.createOrReplaceTempView("data")
    val res = spark.sql("select count(*) from data where client_cd = $clientCd")
    res.coalesce(1).write.format("csv").option("header","true").mode("Overwrite").save("s3a://dev-system/bkup/")
    spark.stop()
  }
}

在这里,我的问题是如何将clientCd作为参数传递给我的代码。

 val res = spark.sql("select count(*) from data where client_cd = $clientCd")

请帮帮我。

spark-submit 末尾附加所有程序参数,它们将在 main args 中可用。

例如。 spark-submit --class xxx --deploy-mode xxx.jar arg1 arg2

然后,您可以通过 JSON 解组器解析arg1

相关内容

  • 没有找到相关文章

最新更新