まず、SPARK_HOME
が設定されていると仮定します。私の場合は~/Desktop/spark-2.0.0
です。基本的には、私はPyronスクリプトをCronjob(例えばcrontab -e
)を使って実行したいと思っています。私の質問は、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
を次のようにrun_example.sh
で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
私のbashスクリプトは、ですが、私はcrontab
を使用してrun_example.sh
分ごとに実行したいです。しかし、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シェルを1行で走らせることはできませんでした! – titipata