Spark: как запустить Spark File из Spark Shell


Я использую CDH 5.2. Я могу использовать spark-shell для выполнения команд.

  1. Как запустить файл (file.spark), содержащий искровые команды.
  2. Есть ли способ запускать / компилировать программы scala в CDH 5.2 без sbt?

заранее спасибо


person Ramakrishna    schedule 31.12.2014    source источник


Ответы (6)


Чтобы загрузить внешний файл из искровой оболочки, просто выполните

:load PATH_TO_FILE

Это вызовет все в вашем файле.

У меня нет решения для вашего вопроса SBT, хотя извините :-)

person Steve    schedule 31.12.2014
comment
Привет, эта команда работает, если у меня есть файл на локальном компьютере, но можно ли указать это место как путь hdfs. то есть: загрузить hdfs: // localhost: 9000 / file - person ǨÅVËĔŊ RĀǞĴĄŅ; 30.06.2015
comment
У меня это не работает. Я использую виртуальную машину быстрого запуска CDH 5.7 - person Alex Raj Kaliamoorthy; 19.07.2016

В командной строке вы можете использовать

spark-shell -i file.scala

для запуска кода, написанного на file.scala

person Ziyao Li    schedule 17.03.2015
comment
Спасибо, потому что этого нет в spark shell -h - person hbogert; 04.08.2015
comment
Я пробовал команду, но она не запускает код из файла, а запускает оболочку scala - person Alex Raj Kaliamoorthy; 19.07.2016
comment
@AlexRajKaliamoorthy Я могу опоздать. Просто пытаюсь помочь своим комментарием / вопросом. Он выполняется, однако вам нужно включить System.exit (0) в конец скрипта, чтобы выйти из искровой оболочки. - person letsBeePolite; 11.08.2016
comment
все еще не работает, только определил объект, затем запустите оболочку scala - person Harit Singh; 19.08.2016
comment
Как запустить .py (файлы Python) ?? - person Abhishek Pansotra; 19.01.2017
comment
@AbhishekPansotra spark-submit [options] <app jar | python file> [app arguments] - person OneCricketeer; 20.01.2017
comment
как отправить аргумент в file.scala в этом случае? - person HappyCoding; 14.03.2017
comment
В файле Scala, если вы определяете объект SparkTest {...}, вам необходимо вызвать основные SparkTest.main (args = Array ()) и System.exit (0) после того, как упомянуто выше. - person Invincible; 27.10.2017
comment
@Ziyao Li, когда я набрал spark-shell --help, он не показал мне вариант -i, почему так? - person loneStar; 08.11.2017
comment
где документ с этим - может быть, я посмотрю код - быстрее - person rio; 31.01.2020

Вы можете использовать sbt или maven для компиляции искровых программ. Просто добавьте искру как зависимость от maven

<repository>
      <id>Spark repository</id>
      <url>http://www.sparkjava.com/nexus/content/repositories/spark/</url>
</repository>

А потом зависимость:

<dependency>
      <groupId>spark</groupId>
      <artifactId>spark</artifactId>
      <version>1.2.0</version>
</dependency>

Что касается запуска файла с помощью искровых команд: вы можете просто сделать это:

echo"
   import org.apache.spark.sql.*
   ssc = new SQLContext(sc)
   ssc.sql("select * from mytable").collect
" > spark.input

Теперь запустите сценарий команд:

cat spark.input | spark-shell
person WestCoastProjects    schedule 31.12.2014
comment
Голосование против явно полезного ответа, по крайней мере, заслуживает объяснения вашей озабоченности. - person WestCoastProjects; 15.12.2015

Просто чтобы дать более перспективный ответ

Spark-shell - это scala repl

Вы можете ввести : help, чтобы увидеть список операций, которые возможны внутри оболочки scala.

scala> :help
All commands can be abbreviated, e.g., :he instead of :help.
:edit <id>|<line>        edit history
:help [command]          print this summary or command-specific help
:history [num]           show the history (optional num is commands to show)
:h? <string>             search the history
:imports [name name ...] show import history, identifying sources of names
:implicits [-v]          show the implicits in scope
:javap <path|class>      disassemble a file or class name
:line <id>|<line>        place line(s) at the end of history
:load <path>             interpret lines in a file
:paste [-raw] [path]     enter paste mode or paste a file
:power                   enable power user mode
:quit                    exit the interpreter
:replay [options]        reset the repl and replay all previous commands
:require <path>          add a jar to the classpath
:reset [options]         reset the repl to its initial state, forgetting all session entries
:save <path>             save replayable session to a file
:sh <command line>       run a shell command (result is implicitly => List[String])
:settings <options>      update compiler options, if possible; see reset
:silent                  disable/enable automatic printing of results
:type [-v] <expr>        display the type of an expression without evaluating it
:kind [-v] <expr>        display the kind of expression's type
:warnings                show the suppressed warnings from the most recent line which had any

: загрузить строки интерпретации в файл

person loneStar    schedule 07.11.2017

Протестировано как на spark-shell version 1.6.3, так и на spark2-shell version 2.3.0.2.6.5.179-4, вы можете напрямую подключаться к стандартному вводу оболочки, например

spark-shell <<< "1+1"

или в вашем случае использования

spark-shell < file.spark
person Phu Ngo    schedule 22.11.2019
comment
Это работает, но вывод на стандартный вывод - это, по сути, воспроизведение всего, что вы увидите, если войдете в искровую оболочку и введете все строки из файла. - person Merlin; 31.12.2019

Вы можете запускать, как вы запускаете свой сценарий оболочки. Этот пример для запуска из примера среды командной строки

./bin/spark-shell: - это путь к вашей искровой оболочке в bin /home/fold1/spark_program.py: - Это путь, по которому находится ваша программа на Python.

So:

./bin.spark-shell /home/fold1/spark_prohram.py
person amarnath pimple    schedule 21.01.2020