在BigQuery python api中设置聚类列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在BigQuery python api中设置聚类列相关的知识,希望对你有一定的参考价值。
我正在尝试在BigQuery中创建一个集群表。
当我在UI中测试它时,它完美地工作:
CREATE OR REPLACE TABLE `project_id_xyz.temp.clustering`
PARTITION BY date
CLUSTER BY cluster_col AS
SELECT CURRENT_DATE() as date, 1 as cluster_col
但是,当我在python(3.7.1)中通过google-bigquery == 1.9.0尝试相同时,表创建并分区但不是群集。如UI中的“详细信息”选项卡所示。
这是我用来创建表的代码片段。
dataset = client.dataset("temp")
table = dataset.table("clustering_test")
job_config = bigquery.QueryJobConfig()
job_config.destination = table
job_config.write_disposition = "WRITE_TRUNCATE"
time_partitioning = TimePartitioning()
time_partitioning.field = "date"
job_config.time_partitioning = time_partitioning
job_config.clustering_fields = ["cluster_col"]
sql = """
SELECT CURRENT_DATE() as date, 1 as cluster_col
"""
query_job = client.query(
sql,
location='US',
job_config=job_config)
query_job.result()
代码似乎非常简单,也不会抛出任何异常。
有什么明显的我做错了吗?
答案
我运行你的python代码,我可以通过群集设置确认它正常工作。
使用Python 3.6.7解决问题的方法是创建一个干净的版本并再次运行代码
以上是关于在BigQuery python api中设置聚类列的主要内容,如果未能解决你的问题,请参考以下文章
如果使用 python 计算 kmeans 聚类,使用 BigQuery 作为 Dataproc 的 ndarrays 的数据源是不是有优势
您可以 SQL 填充 BigQuery 表并在同一个 API 调用中设置表列模式吗?
无法在 BigQuery 中使用 DML 语句的作业中设置目标表