配置单元:如何将数据插入到具有数据类型Map的列中(string:array< int>)

m1m5dgzv  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(202)

我有一个表class1,如下所示

hive> select * from class1;
 OK
 NULL   student_name    NULL    NULL    NULL
 5  david   60  70  80
 5  reena   55  40  80
 7  joseph  66  75  89
 Time taken: 0.659 seconds, Fetched: 4 row(s)
 hive> desc class1;
 OK
 class                  tinyint                                     
 student_name           varchar(30)                                 
 marks_english          int                                         
 marks_maths            int                                         
 marks_science          int                                         
 Time taken: 0.553 seconds, Fetched: 5 row(s)

现在我想以下面的格式将这些数据插入到一个新表中

Class     name_marks
    5   {david:[60,70,80]}
    5   {reena:[55,40,80]}
    7   {joseph:[66,75,89]}

有人能告诉我如何创建一个新表并以所需的格式插入数据吗?

r7s23pms

r7s23pms1#

尝试此查询:

create table new_table as
select class
     , MAP(student_name, ARRAY(marks_english, marks_maths, marks_science) as name_marks
  from old_table;

相关问题