gpt4 book ai didi

arrays - 如何在导出数据时将 Hive array 类型转换为 Vertica varchar

转载 作者:行者123 更新时间:2023-12-04 01:29:49 26 4
gpt4 key购买 nike

我在 Hive 数据库中有一个包含数组类型列的表,我想将其连同内容复制到 Vertica 数据库。 Vertica db 的版本是 v9.0.1-0,我无法创建数组类型的表。要复制表格,我尝试使用

COPY vertica_schema.destination FROM hive_table_path ON ANY NODE ORC;

但得到一张空 table 。你能帮我复制表并将 Hive 数组 int 类型转换为 Vertica varchar 类型吗?例如,Vertica varchar 值可以是:[1, 1, 1]{1, 1, 1}

Vertica 目标表初始化:

CREATE TABLE vertica_schema.destination (
col_a INTEGER NOT NULL,
col_array VARCHAR(200), -- ARRAY[INTEGER] not working
) ORDER BY id
UNSEGMENTED ALL NODES;

Hive源表初始化:

create table source
(
col_a int,
col_array array<int>
) stored as orc;

insert into source select 1, array(1, 2, 3);
insert into source select 2, array(2, 2, 2);
insert into source select 3, array(3, 3, 3);

最佳答案

分解数组,转换元素并收集到字符串数组中(必要时加载到暂存表):

select s.col_a,
collect_list(cast(e.element as string)) as string_array
from source s
lateral view outer explode(s.col_array) e as element

关于arrays - 如何在导出数据时将 Hive array<Int> 类型转换为 Vertica varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61266939/

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