Airflow 从bigquery表中提取记录,并将其作为python变量存储在dag中

Airflow 从bigquery表中提取记录,并将其作为python变量存储在dag中,airflow,directed-acyclic-graphs,google-cloud-composer,Airflow,Directed Acyclic Graphs,Google Cloud Composer,我有一个bigquery表,它总是只有一条记录。我需要获取记录并将其存储为python变量 bigquery表的架构: 文件名 B filename是列名,“b”是其中的记录。b是一根线。 我想要一个python变量(假设为“p”),它应该有p=b。 请帮助我使用气流dag。虽然我没有您的dag代码,但我将分享如何从BigQuery表中获取数据,并使用Python API将其存储在变量中 按照,确保已在实例中安装客户端库。我使用了一个公共数据集和虚拟数据进行演示。下面的代码使用客户端库创建一个B

我有一个bigquery表,它总是只有一条记录。我需要获取记录并将其存储为python变量

bigquery表的架构: 文件名 B filename是列名,“b”是其中的记录。b是一根线。 我想要一个python变量(假设为“p”),它应该有p=b。
请帮助我使用气流dag。

虽然我没有您的dag代码,但我将分享如何从BigQuery表中获取数据,并使用Python API将其存储在变量中

按照,确保已在实例中安装客户端库。我使用了一个公共数据集和虚拟数据进行演示。下面的代码使用客户端库创建一个BigQuery客户端并执行两个查询。然后根据查询结果,因为每个查询只有一个值,所以数据存储在两个不同的变量中。代码如下:

from google.cloud import bigquery
import pandas

client = bigquery.Client()
dataset_ref = client.dataset("stackoverflow", project="bigquery-public-data")
dataset = client.get_dataset(dataset_ref)

#Query result is an INT64
query_1 = """
                SELECT COUNT(a.id) as count
                FROM `bigquery-public-data.stackoverflow.posts_answers` AS a
                """
#Query result is a STRING
query_2 = """SELECT "Jack Sparrow" as name """

res_1 = client.query(query_1) 
res_2 = client.query(query_2) 

#storing the query result(int64) in a variable
for row in res_1:
    var_1 = row.count

#storing the query result(string) in a variable    
for row in res_2:
    var_2 = row.name
    
print("Checking the var_1: {} . Now checking var_2: {}".format(var_1,var_2))
以及产量,

Checking the var_1: 29468374 . Now checking var_2: Jack Sparrow

注意,var_1var_2在Python中作为简单变量在外部访问,一个是整数,另一个是字符串。因此,您可以在DAG中增加这段代码(使用您自己的查询)。我想强调的是,为了实现它,您需要进行检查,这也是一个很好的例子。

您尝试过什么吗?如果您已经开始,那么包含您已经拥有的任何代码都是很有帮助的