提问人:Frank Pinto 提问时间:11/8/2023 更新时间:11/8/2023 访问量:16
在 BQ off 分区 parquet 文件中创建外部表时出错
Error creating an external table in BQ off partitioned parquet files
问:
我正在尝试在 BigQuery 中根据 GCS 中找到的分区 parquet 数据创建一个外部表。我通过运行以下 SQL 语句来执行此操作:
CREATE OR REPLACE EXTERNAL TABLE `project-id.poc.parquet_test`
WITH PARTITION COLUMNS
OPTIONS (
uris = ['gs://poc/beam_parquet_poc_ii/*.parquet'],
format = 'PARQUET',
hive_partition_uri_prefix = 'gs://poc/beam_parquet_poc_ii',
require_hive_partition_filter = false);
但是,当我运行它时,我收到此错误消息:
Error while reading table: parquet_test, error message: Failed to add partition key CREATED_DATE (type: TYPE_DATE) to schema, because another column with the same name was already present. This is not allowed. Full partition schema: [CREATED_DATE:TYPE_DATE, PIPELINE_NAME:TYPE_STRING].
数据存储在 GCS 中,其路径如下:
gs://poc/beam_parquet_poc_ii/CREATED_DATE=2023-08-17/PIPELINE_NAME=poc-1692308092558/00000-of-00002.parquet
gs://poc/beam_parquet_poc_ii/CREATED_DATE=2023-08-17/PIPELINE_NAME=poc-1692308092558/00001-of-00002.parquet
...
数据如下所示:
TRANSACTION_ID EVENT_ID \
0 2cd36716-5e36-4924-9895-812a19d9c64e 3688390
STORE_NBR ITEM_NBR \
5649 654509568
PIPELINE CREATED_DATE
poc-1692308092558 2023-08-17
...
关于如何解决这个问题的任何想法?是不是我不能将分区所依据的列放在基础 parquet 文件中?
答:
1赞
Frank Pinto
11/8/2023
#1
在与一些人交谈后,我意识到 parquet 文件中的基础数据不能具有与我在分区方案中使用的列名称相同的列。所以我放弃了CREATED_DATE和PIPELINE_NAME,这解决了问题
评论