Python运算符中的GCP Bigquery异常处理

yacmzcpb  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(121)

我试图捕捉任何错误,当我通过气流中的Python运算符在Bigquery中运行查询时。但我无法获得预期的行为。它不会抛出任何异常。
这就是我所尝试的。

from google.cloud import bigquery
client = bigquery.Client(project='project_id')
query = "select 1 as cnt from gudb.TEST001 limit 1"

    try:
        client.query(query)
    except Exception as e:
        print(e)

它不会抛出任何异常,即使表在bigquery中不可用。但当我试图存储变量时

var=client.query(query) # in try     
for x in var:
    print(x)

我可以看到存储在该var中的异常。但是我希望在运行tryexcept块时在stdout中提示异常。
有人可以请让我知道,如何获得例外

krcsximq

krcsximq1#

您可以通过调用result函数来查找查询的错误状态。对于您的需求,您可以考虑以下代码:

try:
        client.query(query).result()

except Exception as e:
        print(e)

示例:

def bigquerytest():
    client = bigquery.Client()
    query = "SELECT * FROM `my-project-36069-km.demo12.vvvvvvv`"

    try:
        query_job = client.query(query)
        query_job.result()

    except Exception as s:
        print(f'The error is {s}')

with DAG(dag_id='ne',start_date=datetime(2021, 4, 5, 15, 0),schedule_interval='@daily',catchup=False) as dag:
    t1=BashOperator(task_id='print',bash_command='echo finished')
    t2=PythonOperator(task_id='bigquery',python_callable=bigquerytest)

    t2>>t1

错误:

相关问题