我是Spark的新手。我有一个应用程序,通过调用spark shell来运行每个spark sql查询。因此,它将生成一组如下所示的查询,并调用spark shell命令逐个处理这些查询。
Val Query=spark.sql(""SELECT userid as userid,评级为评级,电影为电影从default.movie表"");
现在我想用spark submit而不是spark shell来运行这个应用程序。有人知道怎么做吗?
如果您使用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命令行