如何使用 SQL 将 BigQuery 表导出到 parquet 并保留列模式

问题描述 投票:0回答:1

我正在尝试以 parquet 格式将 BQ 表导出到 GCS。由于大小限制,无法使用 API,因此必须是 SQL 查询。问题是当使用 SQL 查询时,parquet 会忽略表列模式。 所以当我创建这样的表时

CREATE or replace TABLE sandbox.newtable (x INT64, y STRING, z BOOL NOT NULL, d DATE)
partition by d
  OPTIONS(
    description = 'My example table')
   as select 1 ,'s', false, current_date()

并使用下面的查询导出

EXPORT DATA  
  OPTIONS ( 
    uri = 'gs://path/*.parquet', 
    format = 'PARQUET', 
    compression = 'SNAPPY') 
AS (
  SELECT x,y,z,d FROM sandbox.newtable  
);

z 列将其模式更改为可为空(并且我无法覆盖负载上的列模式,因为 Parquet 将架构存储在文件内)。有没有办法使用 SQL 导出它并保持正确的模式?

google-cloud-platform google-bigquery google-cloud-storage parquet
1个回答
0
投票

我找到了一篇相关帖子,可能会回答您的问题。答案中的分享文章说:

编写 Parquet 文件时,出于兼容性原因,所有列都会自动转换为可为空。

© www.soinside.com 2019 - 2024. All rights reserved.