gpt4 book ai didi

json - Bigquery 导出拆分为多个文件,其中包含一些空文件

转载 作者:行者123 更新时间:2023-12-05 02:06:10 29 4
gpt4 key购买 nike

我正在尝试使用 bigquery 导出功能以 json 格式将数据推送到 GCS。在流程结束时,为了验证 GCS 文件中导出的记录数,我创建了一个具有自动架构检测功能的外部表,只是为了计算导出的 GCS 文件中的记录数。

这适用于单个导出文件。但是对于大小大于 1gb 的表,我使用通配符来分割成多个文件。这会导致创建多个文件以及一些空文件。

查询外部表时空文件导致错误:“400 模式没有字段”。

请将任何想法建议给:

  1. 要么确保在多文件场景的导出操作中不会创建空文件
  2. 在创建外部表时忽略空文件。
  3. 在导出操作后对 GCS 中的记录进行计数的任何其他方式

最佳答案

我遇到了同样的问题,但我找到了解决方法:似乎 TEMP TABLE 可以解决问题。

(编辑:阅读 doc 我注意到“导出数据”一直被描述为 BigQuery 表,而不是自定义选择。而且由于我在导出真实表时从未遇到过空文件,所以我给了临时表同样的机会)

假设我们有以下查询:

EXPORT DATA OPTIONS(
uri='gs://mybucket/extract-here/*.csv.gz'
, format='CSV'
, compression='GZIP'
, overwrite=true
, header=true
, field_delimiter=","
) AS (
WITH mytable AS (
SELECT col FROM UNNEST([1,2,3,4,5,6,7,8]) AS col
)
SELECT * FROM mytable
);

你可以重写如下:

BEGIN
CREATE TEMP TABLE _SESSION.tmpExportTable AS (
WITH mytable AS (
SELECT col FROM UNNEST([1,2,3,4,5,6,7,8]) AS col
)
SELECT * FROM mytable
);
EXPORT DATA OPTIONS(
uri='gs://mybucket/extract-here/*.csv.gz'
, format='CSV'
, compression='GZIP'
, overwrite=true
, header=true
, field_delimiter=","
) AS
SELECT * FROM _SESSION.tmpExportTable;
END;

关于json - Bigquery 导出拆分为多个文件,其中包含一些空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62914096/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com