На данный момент нет специализированного Datapro верхнего уровня c Тип задания для некомпилированного Spark Scala, но под капотом spark-shell
просто использует те же механизмы, что и spark-submit
для запуска специализированный драйвер REPL: org.apache.spark.repl.Main
. Таким образом, комбинируя это с флагом --files
, доступным в gcloud dataproc jobs submit spark
, вы можете просто написать фрагменты Scala, которые вы, возможно, протестировали в сеансе spark-shell
или в записной книжке, и запустить его как всю работу Datapro c. при условии, что job.scala
является локальным файлом на вашем компьютере:
gcloud dataproc jobs submit spark --cluster ${CLUSTER} \
--class org.apache.spark.repl.Main \
--files job.scala \
-- -i job.scala
Как и любой другой файл, вы также можете указать любой Had oop -совместимый путь в аргументе --files
, например, как gs://
или даже hdfs://
, при условии, что вы уже поместили туда свой файл job.scala
:
gcloud dataproc jobs submit spark --cluster ${CLUSTER} \
--class org.apache.spark.repl.Main \
--files gs://${BUCKET}/job.scala \
-- -i job.scala
gcloud dataproc jobs submit spark --cluster ${CLUSTER} \
--class org.apache.spark.repl.Main \
--files hdfs:///tmp/job.scala \
-- -i job.scala
Если вы разместили файл задания на главном узле Datapro c через При выполнении действия init вы должны использовать file:///
, чтобы указать, что файл находится в локальной файловой системе кластера, а не в локальной файловой системе, в которой вы запускаете gcloud:
gcloud dataproc jobs submit spark --cluster ${CLUSTER} \
--class org.apache.spark.repl.Main \
--files file:///tmp/job.scala \
-- -i job.scala
Обратите внимание, что во всех случаях файл становится локальным файлом в рабочем каталоге основного задания драйвера, поэтому аргумент «-i» может быть просто относительным путем к имени файла.