我正在创建一个包含多个分区的表。我创建的表很好,一切似乎都工作得很好,但我不能插入使用我的插入代码,并得到正确的响应,一个似乎分区上的列被倒置,或交换。这意味着event_date
和stem
被交换,这是非常令人沮丧的。
因此,例如在分区代码中的databricks是:
%sql
CREATE TABLE IF NOT EXISTS table_name (
company_id string
, event_date string
, context_page_url string
, stem string
)
USING parquet partitioned by (event_date, stem);
插入代码为:`
%sql
insert overwrite table table_name partition (event_date, steam)
(
select cs.company_id as company_id
, cs.context_page_url as context_page_url
, split_part(cs.context_page_url, '/', 7) as stem
, try_cast(concat(cs.year, "-", cs.month, "-", cs.day) as string) as event_date
from cstr_table cs where year=2023 and month = 5 and day = 1 and geo_country_iso = "GB" and context_page_url like "%help%"
)
如果我只在单个字段上分区,情况就不是这样了:event_date
. 以正确的方式插入数据,其中
event_date反映日期,而不是
stem`。
1条答案
按热度按时间tjjdgumg1#
您需要修改您的选择沿着以下修改。