代码之家  ›  专栏  ›  技术社区  ›  far2c

使用spark提交运行spark应用程序

  •  0
  • far2c  · 技术社区  · 7 年前

    我是Spark的新手。我有一个应用程序,它通过调用sparkshell来运行每个sparksql查询。因此它将生成一组如下所示的查询,并调用sparkshell命令逐个处理这些查询。

    选择userid作为userid, 评定为等级, 从默认。可移动""");

    现在我想用spark submit而不是sparkshell来运行这个应用程序。谁能告诉我怎么做吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Naveen Cotha    7 年前

    如果你使用的是scala, spark-submit sbt 作为依赖/构建工具, sbt公司 guide . -python和java也有类似的方法

    更新1: spark-shell 用于进行快速实验,当 被调用时 SparkSession 自动实例化,所以当你想通过编程实现这个目标时,你需要用程序调用它。

    例如:

    val sparkSession: SparkSession = 
    SparkSession.builder.appName("awesomeApp").getOrCreate()
    
    // This import is needed to use the $-notation, and imported automatically in `spark-shell` by default
    import sparkSession.implicits._
    
    ...
    //code to generate/import/build your `movieTable` view/table
    ...
    
    val queryOutputDf=sparkSession.sql(""" SELECT userid AS userid, rating AS rating, movieid AS movieid FROM default.movieTable""");
    
    //the above output is a `dataframe`, it needs to be written to a file
    queryOutputDf.rdd.map(_.toString()).saveAsTextFile("/path/to/a/file/with/good/name")
    

    这将实现您对单个查询的意图,您必须循环查询并将其传递给上面的内容。