Отправка задания pyspark в кластер Amazon EMR с терминала - PullRequest
0 голосов
/ 17 июня 2020

У меня есть S SH -ed на сервере Amazon EMR, и я хочу отправить задание Spark (файл простого подсчета слов и sample.txt находятся на сервере Amazon EMR), написанное на Python из Терминал. Как мне это сделать и каков синтаксис?

word_count.py выглядит следующим образом:

from pyspark import SparkConf, SparkContext

from operator import add
import sys
## Constants
APP_NAME = " HelloWorld of Big Data"
##OTHER FUNCTIONS/CLASSES

def main(sc,filename):
   textRDD = sc.textFile(filename)
   words = textRDD.flatMap(lambda x: x.split(' ')).map(lambda x: (x, 1))
   wordcount = words.reduceByKey(add).collect()
   for wc in wordcount:
      print (wc[0],wc[1])

if __name__ == "__main__":

   # Configure Spark
   conf = SparkConf().setAppName(APP_NAME)
   conf = conf.setMaster("local[*]")
   sc   = SparkContext(conf=conf)
   sc._jsc.hadoopConfiguration().set("fs.s3.awsAccessKeyId","XXXX")
   sc._jsc.hadoopConfiguration().set("fs.s3.awsSecretAccessKey","YYYY")
   filename = "s3a://bucket_name/sample.txt"
   # filename = sys.argv[1]
   # Execute Main functionality
   main(sc, filename)

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете запустить эту команду:

spark-submit s3://your_bucket/your_program.py

если вам нужно запустить скрипт с использованием python3, вы можете запустить эту команду до spark-submit:

export PYSPARK_PYTHON=python3.6

Помните чтобы сохранить вашу программу в корзине перед spark-submit .

...