hive - HIVE:如何将数据插入数据类型为 MAP 的列(字符串:数组)
问题描述
我有一个表 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]}
有人能告诉我如何创建一个新表并以所需格式插入数据吗?
解决方案
试试这个查询:
create table new_table as
select class
, MAP(student_name, ARRAY(marks_english, marks_maths, marks_science) as name_marks
from old_table;
推荐阅读
- ios - 在 swift 版本 5.1.3 中如何使用 NSUserDefaults.standardUserDefaults().stringForKey?
- python-3.x - 用所有浮点数替换熊猫中的单个字符
- azure - 如何使用 helm 和 Azure Managed Identity 安装 Velero?
- python - 无法使用 Nginx 反向代理连接到 Websocket 服务器
- reactjs - 如何让 command.js 和 index.d.ts 知道函数?
- android - 随着 Android Studio 4.1 更新 'Plugin incompatible with the new build found: Firebase Services' 出现警告信息
- angular - 与分页Angular一起过滤数据
- r - 如何用半一致的格式重命名观察?
- javascript - 使用 C# 到 JavaScript 的 UWP WebView 中 JSON 的问题无法正确读取
- c++ - 我可以在这个线性函数问题中使用什么算法?