在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 API

无法在 BigQuery 中使用 DML 语句的作业中设置目标表

在 Google Cloud Storage 中设置元数据(从 BigQuery 导出)

在 python 中通过 API 对 BigQuery 表进行分区