Запуск приложения с использованием искры - PullRequest
0 голосов
/ 15 октября 2018

Я новичок в Искре.У меня есть приложение, которое запускает каждый запрос spark sql, вызывая spark-shell.Поэтому он сгенерирует набор запросов, как показано ниже, и вызовет команду spark-shell для обработки этих запросов один за другим.

val Query = spark.sql ("" "SELECT userid AS userid, рейтинг AS rating, movieidAS movieid FROM default.movieTable "" ");

Теперь я хочу запустить это приложение, используя spark-submit вместо spark-shell.Кто-нибудь может сказать, как это сделать?

1 Ответ

0 голосов
/ 15 октября 2018

Если вы используете scala, spark-submit принимает файл jar, вам нужно будет создать проект scala с sbt в качестве инструмента зависимости / построения, sbt может взять весь ваш код и объединить его вфлягаВы можете следовать этому гиду .- Подобные подходы существуют для python и java

Update1: spark-shell предназначен для использования в проведении быстрых экспериментов, когда вызывается 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")

Это позволит достичь вашего намерения для одного запроса, вам придется циклически проходить запросы и передаватьэто к вышесказанному.

...