Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取>;的DAG不支持的操作数类型时出错>;:';列表';和';列表';。任务的顺序和并行执行_Python_Airflow_Directed Acyclic Graphs_Airflow Scheduler - Fatal编程技术网

Python 获取>;的DAG不支持的操作数类型时出错>;:';列表';和';列表';。任务的顺序和并行执行

Python 获取>;的DAG不支持的操作数类型时出错>;:';列表';和';列表';。任务的顺序和并行执行,python,airflow,directed-acyclic-graphs,airflow-scheduler,Python,Airflow,Directed Acyclic Graphs,Airflow Scheduler,我不熟悉Apache和DAG。DAG中总共有6个任务(任务1、任务2、任务3、任务4、任务5、任务6)。但是在运行DAG时,我们得到了下面的错误 DAG不支持>>的操作数类型:“列表”和“列表” 下面是我的DAG代码。请帮忙。我是个新手 from airflow import DAG from datetime import datetime from airflow.providers.databricks.operators.databricks import DatabricksSubmi

我不熟悉Apache和DAG。DAG中总共有6个任务(任务1、任务2、任务3、任务4、任务5、任务6)。但是在运行DAG时,我们得到了下面的错误

DAG不支持>>的操作数类型:“列表”和“列表”

下面是我的DAG代码。请帮忙。我是个新手

from airflow import DAG
from datetime import datetime
from airflow.providers.databricks.operators.databricks import DatabricksSubmitRunOperator


default_args = {
    'owner': 'airflow',
    'depends_on_past': False
}

dag = DAG('DAG_FOR_TEST',default_args=default_args,schedule_interval=None,max_active_runs=3, start_date=datetime(2020, 7, 14)) 


#################### CREATE TASK #####################################   

task_1 = DatabricksSubmitRunOperator(
    task_id='task_1',
    databricks_conn_id='connection_id_details',
    existing_cluster_id='{{ dag_run.conf.clusterId }}',
    libraries= [
        {
        'jar': 'dbfs:/task_1/task_1.jar'
        }        
        ],
    spark_jar_task={
        'main_class_name': 'com.task_1.driver.TestClass1',
        'parameters' : [
            '{{ dag_run.conf.json }}'       
        ]
    }
)



    
task_2 = DatabricksSubmitRunOperator(
    task_id='task_2',
    databricks_conn_id='connection_id_details',
    existing_cluster_id='{{ dag_run.conf.clusterId }}',   
    libraries= [
        {
        'jar': 'dbfs:/task_2/task_2.jar'
        }        
        ],
    spark_jar_task={
        'main_class_name': 'com.task_2.driver.TestClass2',
        'parameters' : [
            '{{ dag_run.conf.json }}'                               
        ]
    }
)
    
task_3 = DatabricksSubmitRunOperator(
    task_id='task_3',
    databricks_conn_id='connection_id_details',
    existing_cluster_id='{{ dag_run.conf.clusterId }}',   
    libraries= [
        {
        'jar': 'dbfs:/task_3/task_3.jar'
        }        
        ],
    spark_jar_task={
        'main_class_name': 'com.task_3.driver.TestClass3',
        'parameters' : [
            '{{ dag_run.conf.json }}'   
        ]
    }
) 

task_4 = DatabricksSubmitRunOperator(
    task_id='task_4',
    databricks_conn_id='connection_id_details',
    existing_cluster_id='{{ dag_run.conf.clusterId }}',
    libraries= [
        {
        'jar': 'dbfs:/task_4/task_4.jar'
        }        
        ],
    spark_jar_task={
        'main_class_name': 'com.task_4.driver.TestClass4',
        'parameters' : [
            '{{ dag_run.conf.json }}'   
        ]
    }
) 

task_5 = DatabricksSubmitRunOperator(
    task_id='task_5',
    databricks_conn_id='connection_id_details',
    existing_cluster_id='{{ dag_run.conf.clusterId }}',
    libraries= [
        {
        'jar': 'dbfs:/task_5/task_5.jar'
        }        
        ],
    spark_jar_task={
        'main_class_name': 'com.task_5.driver.TestClass5',
        'parameters' : [
            'json ={{ dag_run.conf.json }}' 
        ]
    }
) 

task_6 = DatabricksSubmitRunOperator(
    task_id='task_6',
    databricks_conn_id='connection_id_details',
    existing_cluster_id='{{ dag_run.conf.clusterId }}',
    libraries= [
        {
        'jar': 'dbfs:/task_6/task_6.jar'
        }        
        ],
    spark_jar_task={
        'main_class_name': 'com.task_6.driver.TestClass6',
        'parameters' : ['{{ dag_run.conf.json }}'   
        ]
    }
) 

#################### ORDER OF OPERATORS ###########################  
 
    task_1.dag = dag
    task_2.dag = dag
    task_3.dag = dag
    task_4.dag = dag
    task_5.dag = dag
    task_6.dag = dag

task_1 >> [task_2 , task_3] >> [ task_4 , task_5 ] >> task_6 

任务依赖项无法处理[list]>>[list]。解决此问题的最简单方法是在多行上指定依赖项:

task_1 >> [task_2 , task_3]
task_2 >> [task_4, task_5]
task_3 >> [task_4, task_5]
[task_4 , task_5 ] >> task_6

任务依赖项无法处理[list]>>[list]。解决此问题的最简单方法是在多行上指定依赖项:

task_1 >> [task_2 , task_3]
task_2 >> [task_4, task_5]
task_3 >> [task_4, task_5]
[task_4 , task_5 ] >> task_6

您希望的任务依赖性是什么?您想在
task_2
之后运行
task_4
,还是在
task_2
task_3

根据该答案,使用以下选项之一:

(如果任务4应在
任务2
任务3
完成后运行,则使用此选项)

任务1>>[任务2,任务3]
任务2>>[任务4,任务5]>>任务6
任务3>>[任务4,任务5]

(如果任务4应在
任务2
完成后运行,而
任务5
应在
任务3
完成后运行,则使用此选项)

任务1>>[任务2,任务3]
任务2>>任务4
任务3>>任务5
[任务4,任务5]>>任务6
提示,您不需要执行以下操作:

task_1.dag=dag
任务2.dag=dag
任务3.dag=dag
任务4.dag=dag
任务_5.dag=dag
任务_6.dag=dag
您可以将
dag
参数传递给任务本身,例如:

task_6=DatabricksSubmitRunOperator(
task_id='task_6',
dag=dag,
databricks_conn_id='connection_id_details',
现有的_cluster_id={{dag_run.conf.clusterId}},
图书馆=[
{
'jar':'dbfs:/task_6/task_6.jar'
}        
],
火花罐任务={
'main_class_name':'com.task_6.driver.TestClass6',
'参数':['{{dag_run.conf.json}}'
]
}
) 

或者使用DAG作为您的上下文管理器,如和中的第(1)点所述,您希望的任务相关性是什么?您想在
task_2
之后运行
task_4
,还是在
task_2
task_3

根据该答案,使用以下选项之一:

(如果任务4应在
任务2
任务3
完成后运行,则使用此选项)

任务1>>[任务2,任务3]
任务2>>[任务4,任务5]>>任务6
任务3>>[任务4,任务5]

(如果任务4应在
任务2
完成后运行,而
任务5
应在
任务3
完成后运行,则使用此选项)

任务1>>[任务2,任务3]
任务2>>任务4
任务3>>任务5
[任务4,任务5]>>任务6
提示,您不需要执行以下操作:

task_1.dag=dag
任务2.dag=dag
任务3.dag=dag
任务4.dag=dag
任务_5.dag=dag
任务_6.dag=dag
您可以将
dag
参数传递给任务本身,例如:

task_6=DatabricksSubmitRunOperator(
task_id='task_6',
dag=dag,
databricks_conn_id='connection_id_details',
现有的_cluster_id={{dag_run.conf.clusterId}},
图书馆=[
{
'jar':'dbfs:/task_6/task_6.jar'
}        
],
火花罐任务={
'main_class_name':'com.task_6.driver.TestClass6',
'参数':['{{dag_run.conf.json}}'
]
}
) 

或者使用DAG作为上下文管理器,如

task6表单我不显示:(task6表单我不显示:(