次のようないくつかのコマンドを保存するファイルがあります。
sudo PYSPARK_DRIVER_PYTHON=/bin/python2.7 PYSPARK_PYTHON=/bin/python2.7 SPARK_CONF_DIR=/configuration/spark2 /spark2.1/bin/spark-submit --driver-memory 2g --executor-memory 4g --num-executors 100 --jars /lib/json-serde-1.3.7-jar-with-dependencies.jar
上記のコマンドは、ファイル名(例:)が追加された場合にのみ実行されますfile.py
。したがって、コマンドラインでこれを実行するには、次のように入力します。
sudo PYSPARK_DRIVER_PYTHON=/bin/python2.7 PYSPARK_PYTHON=/bin/python2.7 SPARK_CONF_DIR=/configuration/spark2 /spark2.1/bin/spark-submit --driver-memory 2g --executor-memory 4g --num-executors 100 --jars /lib/json-serde-1.3.7-jar-with-dependencies.jar file.py
ちなみに、このコマンドを使っていくつかのファイルを実行したいのですが、実行するたびにファイル名を指定したいと思います。このコマンドをというファイルに保存しようとしましたcommand
。
cat command echo file.py | bash
しかし、うまくいかないようです。どうすればいいですか?
答え1
スクリプトで変数を設定し、クイックステータスチェックを実行します。
pyfile="file.py"
sudo PYSPARK_DRIVER_PYTHON=/bin/python2.7 PYSPARK_PYTHON=/bin/python2.7 SPARK_CONF_DIR=/configuration/spark2 /spark2.1/bin/spark-submit --driver-memory 2g --executor-memory 4g --num-executors 100 --jars /lib/json-serde-1.3.7-jar-with-dependencies.jar "${pyfile?python script not specified}"
変数が定義されていないか空の場合、コンストラクタは${var?message}
エラーを発生して表示します。message
var
を使用してデフォルト値を指定することもできます${var-defaultvalue}
。
より簡単な呼び出し機能に設定することもできます。
runjob() {
sudo PYSPARK_DRIVER_PYTHON=/bin/python2.7 PYSPARK_PYTHON=/bin/python2.7 SPARK_CONF_DIR=/configuration/spark2 /spark2.1/bin/spark-submit --driver-memory 2g --executor-memory 4g --num-executors 100 --jars /lib/json-serde-1.3.7-jar-with-dependencies.jar "${1?python script not specified}"
}
runjob "/path/to/file.py"
runjob "/path/to/some/other/file.py"