먼저 우리는 SPARK_HOME
이 설치되어 있다고 가정합니다. 내 경우에는 ~/Desktop/spark-2.0.0
입니다. 기본적으로 Cronjob (예 : crontab -e
)을 사용하여 PySpark 스크립트를 실행하고 싶습니다. 내 질문은 Spark 스크립트가 Cronjob과 함께 작동하도록 환경 경로를 추가하는 방법입니다. 여기에 여기에Cronjob (crontab)을 사용하여 PySpark를 실행 중
rm test.txt
~/Desktop/spark-2.0.0/bin/spark-submit \
--master local[8] \
--driver-memory 4g \
--executor-memory 4g \
example.py
다음, 나는 crontab
를 사용 run_example.sh
모든 분을 실행할로 run_example.sh
에서 내 bash는 스크립트가 example.py
import os
from pyspark import SparkConf, SparkContext
# Configure the environment
if 'SPARK_HOME' not in os.environ:
os.environ['SPARK_HOME'] = '~/Desktop/spark-2.0.0'
conf = SparkConf().setAppName('example').setMaster('local[8]')
sc = SparkContext(conf=conf)
if __name__ == '__main__':
ls = range(100)
ls_rdd = sc.parallelize(ls, numSlices=10)
ls_out = ls_rdd.map(lambda x: x+1).collect()
f = open('test.txt', 'w')
for item in ls_out:
f.write("%s\n" % item) # save list to test.txt
내 샘플 스크립트이다. 그러나 crontab -e
을 실행할 때 사용자 지정 경로를 알 수 없습니다. 지금까지 나는 이것을 Gitbook link으로 만 봅니다. 내 코드를 아직 실행하지 않는 Cronjob 편집기에서 이와 비슷한 것을 가지고 있습니다.
#!/bin/bash
# add path to cron (this line is the one I don't know)
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/anaconda/bin
# run script every minutes
* * * * * source run_example.sh
미리 감사드립니다.
감사합니다. @Sarwesh! 근본적으로,'source ~/.bashrc'가 내가 찾고있는 것이다. 나는 한 줄로 여러 개의 bash 쉘을 실행할 수 있다는 것을 전에 알지 못했습니다! – titipata