某些列的 Google BigQuery bq 负载?

Posted

技术标签:

【中文标题】某些列的 Google BigQuery bq 负载?【英文标题】:Google BigQuery bq load for certain columns? 【发布时间】:2020-07-06 00:19:57 【问题描述】:

我有一个.orc 文件的数据集。我使用 CLI 使用 gcloud utils 中的 bq load 命令将我的数据加载到 BQ 中。我的数据有 4 列。第三列与第四列重复,但我想保留第四列。有没有办法只摄取具有bq loadorc 文件的某些列?

【问题讨论】:

您是否尝试在 bq load 命令中仅使用您的 3 列指定架构并添加参数 --allow_jagged_rows?但我认为这行不通。在documentation 中是不允许的。你的文件很大吗? 【参考方案1】:

要仅提取某些列,您可以在命令末尾指定列:

bq load --source_format=ORC DATASET.TABLE gs://YOU-FILES_LOCATION COLUMN1:TYPE, COLUMN2:TYPE, ...

让我们假设两种情况:

    在第一种情况下,您在BigQuery 中没有表,并且您只想加载ORC 文件中的某些字段。如果您运行上面指定某些字段的命令,将创建一个仅包含该字段的表。 在第二种情况下,您已经在BigQuery 中拥有一个带有NULLABLE 字段的表。在这种情况下,如果您运行上面指定字段的命令,您将只将数据的那些字段加载到表中,而其他字段将为该行的 NULL

如果它对您的问题有帮助,请告诉我。

【讨论】:

以上是关于某些列的 Google BigQuery bq 负载?的主要内容,如果未能解决你的问题,请参考以下文章

从 AWS SageMaker 访问 Google BigQuery

从 Google 表格获取数据到 BigQuery

Google Cloud Datalab 中的 BigQuery - 获取查询文本?

使用 bq load 加载带有 NULL 列的 CSV

Python 2.7 和 GCP Google BigQuery:捕获文件加载错误?

Google BQ:运行参数化查询,其中参数变量是BQ表目标