我在客户端部署模式下使用spark-submit 触发EMR 中的spark 作业。这是我的火花提交命令:
spark-submit --deploy-mode client \
--num-executors 3 \
--executor-cores 4 \
--executor-memory 10000m \
--driver-memory 2g \
--conf "spark.archives=s3://spark/venv.tar.gz#environment" \
--conf "spark.executorEnv.PYSPARK_PYTHON=./environment/bin/python" \
--conf "spark.pyspark.python=./environment/bin/python" \
--conf "jars.packages=io.delta:delta-core_2.12:2.4.0" \
--conf "sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \
--conf "sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog" \
s3://spark/count_numbers.py \
--source-directory s3://data-in/words/ \
--output-directory s3://data-out/word-count/
当我运行它时,我收到错误:
Error: Unrecognized option: --conf "spark.archives
此时我尝试了很多事情,感谢我能得到的任何帮助
我能够解决它。最后我正确地调用了
spark-submit
。我使用气流提交了作业,EMR 操作员希望您传递一个参数数组,我传递了一个参数字符串。它们在调用 spark-submit
时看起来一模一样,所以费了一番功夫才弄明白。