如何使用spark-shell运行spark文件

时间:2015-03-12 06:26:15

标签: apache-spark

我写了一个HelloWorld spark应用程序。该文件如下所示:

object HelloWorld{
  def main(args: Array[String]){
    println("HelloWorld")
  }
}

但它只是一个文件。我想从bash终端运行它,而不是从spark-shell运行它。我想用crontab做一个预定的任务。我怎样才能让它发挥作用?

3 个答案:

答案 0 :(得分:1)

您可以使用以下命令运行spark应用程序。

./bin/spark-submit \
  --class <main-class>
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]

简单示例:

spark-submit --class WordCount MyJarFile.jar fileURL

答案 1 :(得分:1)

如果你在 Scala 文件中定义了一个对象,例如file.scala 喜欢

//file.scala
import org.apache.spark.sql._
object App{
    def main(args: Array[String]): Unit = {
        val spark = (
            SparkSession
            .builder
            .getOrCreate()
        )
        import spark.implicits._

        println("Hello world")
    }
}

您可以使用以下命令在 spark-shell 中运行它:

  1. 首先用
  2. 运行spark shell
spark-shell
  1. 然后在控制台写:
scala> :load file.scala
scala> App.main(Array())

或者,您可以将其作为脚本运行:

//build.sbt
name := "app"
version :="0.0.1"
scalaVersion := "2.11.12"

val sparkVersion = "2.4.7"

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-sql" % sparkVersion % "provided"
)

并用

编译它
sbt clean package

然后用

运行脚本
spark-submit --class App target/scala-2.11/app_2.11-0.0.1.jar

答案 2 :(得分:0)

您编写的程序是纯scala对象。您可以轻松地从bash运行它:

scalac program.scala
scala HelloWorld

或者如果您编写了一个spark程序,那么您可以使用下面给出的命令从bash运行它,但请记住您需要为它调用驱动程序类:

spark-shell -i program.scala