jay*_*345 6 json export external-tables google-bigquery
我正在尝试使用 bigquery 导出功能将数据以 json 格式推送到 GCS。在该过程结束时,为了验证 GCS 文件中导出的记录计数,我创建了一个具有自动模式检测功能的外部表,只是为了获取导出的 GCS 文件中的记录计数。
这适用于单个导出的文件。但对于大小大于 1GB 的表,我使用通配符来拆分为多个文件。这会产生多个文件,并创建一些空文件。
空文件在查询外部表时导致错误:“400 架构没有字段”。
请向以下人员提出任何想法:
Fas*_*oeu 11
我遇到了同样的问题,但我找到了解决方法:似乎 TEMP TABLE 可以解决问题。
(编辑:阅读文档时我注意到“导出数据”总是针对 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
);
Run Code Online (Sandbox Code Playgroud)
您可以将其重写如下:
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2407 次 |
| 最近记录: |