【发布时间】:2019-04-02 20:10:17
【问题描述】:
我有一个工作正常的查询。问题是该查询的一部分是需要从文件中读取的字符串。查询每个字符串会产生 6 个输出。我需要该文件的所有结果的联合,以便最终结果是一个包含 6 倍字符串数的表。我可以使用 Python 读取文件。
我已经尝试过使用参数化查询。它们每个只返回基于字符串的 6 行。
我的大部分 Python 代码都基于 BigQuery 的文档 here。
query = """
SELECT pet_id, age, name
FROM `myproject.mydataset.mytable`
WHERE name = @name
AND species = @species;
"""
query_params = [
bigquery.ScalarQueryParameter('name', 'STRING', 'Max'),
bigquery.ScalarQueryParameter('species', 'INT64', 'Dog'),
bigquery.ScalarQueryParameter('name', 'STRING', 'Alfred'),
bigquery.ScalarQueryParameter('species', 'INT64', 'Cat')
]
job_config = bigquery.QueryJobConfig()
job_config.query_parameters = query_params
query_job = client.query(
query,
# Location must match that of the dataset(s) referenced in the query.
location='US',
job_config=job_config) # API request - starts the query
# Print the results
for row in query_job:
print('{}: \t{}'.format(row.word, row.word_count))
如何获得这些查询结果的 UNION ALL?
输出应该是这样的
pet_id | age | name
___________________
1 | 5 | Max
2 | 8 | Alfred
【问题讨论】:
-
对于标准库之外的方法,请包含所有
import。
标签: python sql google-bigquery