如何更改配置单元表的列类型?

jyztefdp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(454)

我试图手动创建一个配置单元表,但是我想将“order”的列类型更改为具有结构(orderline)的数组。
我目前的表格如下:

我想要与订单相同的类型:

如何更改列的类型?

gojuced7

gojuced71#

我想出来了,你能做到的。
第一步:

create table testing.lz_test_struct
(
  mark struct<math:string,english:string>
)
row format delimited
fields terminated by ','
collection items terminated by '-';

第二步:

hive> desc testing.lz_test_struct;
OK
mark struct<math:string,english:string,address:string,name:string>

第三步:

hive> alter table testing.lz_test_struct change  mark mark struct<math:string,english:string,address:string,name:string,city:string>;
ok
Time taken: 0.467 seconds

第四步:

hive> desc testing.lz_test_struct;
OK
mark                    struct<math:string,english:string,address:string,name:string,city:string>
Time taken: 0.143 seconds, Fetched: 1 row(s)
rggaifut

rggaifut2#

我想,只要通过配置单元查询编辑器编辑类型,使用简单的sql语句,例如:

ALTER TABLE person CHANGE orders order ARRAY<STRUCT<status:string,creation_date:string,orderlines:array<STRUCT<depature_date:string,return_date : string, travel_days : int, creation_date: string,
                   price : int, booking_class : string, airline_code : string,
                   psg_gender : string, psg_lastname : string, psg_firstname : string, psg_dob : string>>>>

结果:

相关问题