我必须使用bash运算符在composer中运行一些python文件(.py),这些文件存在于计算引擎中,但我无法通过composer与计算引擎进行通信。 我想我需要添加连接变量进行通信。谁能帮忙解决此问题。
def checkfile():
file_path = '/root/sample-pyspark.py'
if os.path.exists(file_path):
print("File present")
return True
else:
print("File not present")
return False
with DAG('Demo_spark_job',
default_args=default_args,
schedule_interval='0 * * * *',
) as dag:
print_hello = BashOperator(task_id='print_hello',
bash_command='echo "hello"')
check_file = PythonOperator(task_id='check_file',
python_callable=checkfile)
sample_spark_job = BashOperator(task_id='run_spark_job',
bash_command='sudo python /root/sample-pyspark.py')
答案 0 :(得分:0)
要在Cloud Composer Airflow工作人员上显示文件(例如Python脚本),请将它们放入环境的关联GCS存储桶中。例如,如果您将文件放在gs://my-composer-bucket/data/sample-pyspark.py
(即数据目录)中,则可以在其安装路径中访问它:
sample_spark_job = BashOperator(task_id='run_spark_job',
bash_command='sudo python /home/airflow/gcs/data/sample-pyspark.py')
您可以在public documentation page上详细了解Composer的映射目录。
如果我对上面的问题有误解,而您实际上想在其他GCE实例上运行Bash命令,那么您应该考虑使用SSH operator。