当前位置: 首页 > 知识库问答 >
问题:

使用spark submit运行spark应用程序

廖诚
2023-03-14

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

Val Query=spark.sql(""SELECT userid as userid,评级为评级,电影为电影从default.movie表"");

现在我想用spark submit而不是spark shell来运行这个应用程序。有人知道怎么做吗?

共有1个答案

林项明
2023-03-14

如果您使用scala,spark submit接收一个jar文件,那么您必须创建一个scala项目,使用sbt作为依赖项/构建工具,sbt可以接收您的所有代码并将其捆绑到一个jar文件中。你可以遵循这个指南python和java也有类似的方法

更新1:sparkshell用于进行快速实验,当调用sparkshell时,它会自动实例化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")

这将实现单个查询的目的,您必须循环查询并将其传递给上面的用户。

 类似资料:
  • 我错过了什么?到目前为止,我搜索到的所有答案都建议使用1.2.1,我已经在做了。 任何建议都将不胜感激!

  • 我试图在AWS EMR上运行一个Spark应用程序。我遵循http://blogs.aws.amazon.com/bigdata/post/tx15ay5c50k70rv/installing-apache-spark-on-an-amazon-emr-cluster的说明 我从S3中加载fat-jar(通过执行“SBT Assembly”获得)和应用程序所需的输入文件。我在Spark-1.1.0

  • 我正在以独立模式运行Spark群集。 我已使用以下选项提交了群集模式下的Spark应用程序: 使作业具有容错性。 现在我需要保持集群运行但停止应用程序运行。 我尝试过的事情: 停止集群并重新启动它。但是当我这样做时,应用程序会恢复执行。 使用了名为DriverWrapper的守护进程的Kill-9,但之后工作再次恢复。 我还删除了临时文件和目录并重新启动了集群,但作业再次恢复。 所以正在运行的应用

  • 作为一个软件开发人员,我需要做哪些步骤来允许我的JavaFX应用程序与JDK11+一起运行?有什么好的广告吗?是否可以通过Gradle获得OpenJDK?

  • Mesosphere在简化Mesos上运行Spark的过程方面做了很大的工作。我正在使用本指南在Google Cloud Compute上建立一个开发Mesos集群。 https://mesosphere.com/docs/tutorials/run-spark-on-mesos/ 我可以使用运行指南中的示例(查找小于10的数字)。但是,当我试图在本地提交一个与Spark一起正常工作的应用程序时,

  • 当我使用以下命令运行下面的代码时 spark-提交prepiadstream_sample.py--主本地[3]--名称prepiadstream_sample--名称-执行器5--执行器-内存5G--驱动程序-内存5G 虽然我在Spark submit本地运行了配置,但我发现在代码中打印出的配置以客户端的身份返回部署模式,所以Spark不应该使用coniguration命令行