Airflow 从bigquery表中提取记录,并将其作为python变量存储在dag中
我有一个bigquery表,它总是只有一条记录。我需要获取记录并将其存储为python变量 bigquery表的架构: 文件名 B filename是列名,“b”是其中的记录。b是一根线。 我想要一个python变量(假设为“p”),它应该有p=b。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
请帮助我使用气流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_1和var_2在Python中作为简单变量在外部访问,一个是整数,另一个是字符串。因此,您可以在DAG中增加这段代码(使用您自己的查询)。我想强调的是,为了实现它,您需要进行检查,这也是一个很好的例子。您尝试过什么吗?如果您已经开始,那么包含您已经拥有的任何代码都是很有帮助的