Hive(6):数据定义语言(DDL)案例

news2025/1/10 20:46:58

1 原生数据类型案例

文件archer.txt中记录了相关信息,内容如下所示,其中字段之间分隔符为制表符\t,要求在Hive中建表映射成功该文件。

1	后羿	5986	1784	396	336	remotely	archer
2	马可波罗	5584	200	362	344	remotely	archer
3	鲁班七号	5989	1756	400	323	remotely	archer
4	李元芳	5725	1770	396	340	remotely	archer
5	孙尚香	6014	1756	411	346	remotely	archer
6	黄忠	5898	1784	403	319	remotely	archer
7	狄仁杰	5710	1770	376	338	remotely	archer
8	虞姬	5669	1770	407	329	remotely	archer
9	成吉思汗	5799	1742	394	329	remotely	archer
10	百里守约	5611	1784	410	329	remotely	archer	assassin

字段含义:id、name(英雄名称)、hp_max(最大生命)、mp_max(最大法力)、attack_max(最高物攻)、defense_max(最大物防)、attack_range(攻击范围)、role_main(主要定位)、role_assist(次要定位)。

分析一下:字段都是基本类型,字段的顺序需要注意一下。字段之间的分隔符是制表符,需要使用row format语法进行指定。

建表语句:

--创建数据库并切换使用
create database handsome;
use handsome;

--ddl create table
create table t_archer(
    id int comment "ID",
    name string comment "英雄名称",
    hp_max int comment "最大生命",
    mp_max int comment "最大法力",
    attack_max int comment "最高物攻",
    defense_max int comment "最大物防",
    attack_range string comment "攻击范围",
    role_main string comment "主要定位",
    role_assist string comment "次要定位"
) comment "王者荣耀射手信息"
row format delimited fields terminated by "\t";

建表成功之后,在Hive的默认存储路径下就生成了表对应的文件夹,把archer.txt文件上传到对应的表文件夹下。

hadoop fs -put archer.txt  /user/hive/warehouse/handsome.db/t_archer

执行查询操作,可以看出数据已经映射成功。

想一想:Hive这种能力是不是比mysql一条一条insert插入数据方便多了?

2 复杂数据类型案例

文件hot_hero_skin_price.txt中记录了手游《王者荣耀》热门英雄的相关皮肤价格信息,内容如下,要求在Hive中建表映射成功该文件。

1,孙悟空,53,西部大镖客:288-大圣娶亲:888-全息碎片:0-至尊宝:888-地狱火:1688
2,鲁班七号,54,木偶奇遇记:288-福禄兄弟:288-黑桃队长:60-电玩小子:2288-星空梦想:0
3,后裔,53,精灵王:288-阿尔法小队:588-辉光之辰:888-黄金射手座:1688-如梦令:1314
4,铠,52,龙域领主:288-曙光守护者:1776
5,韩信,52,飞衡:1788-逐梦之影:888-白龙吟:1188-教廷特使:0-街头霸王:888

字段:id、name(英雄名称)、win_rate(胜率)、skin_price(皮肤及价格)

分析一下:前3个字段原生数据类型、最后一个字段复杂类型map。需要指定字段之间分隔符、集合元素之间分隔符、map kv之间分隔符。

建表语句:

create table t_hot_hero_skin_price(
    id int,
    name string,
    win_rate int,
    skin_price map<string,int>
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':' ;

建表成功后,把hot_hero_skin_price.txt文件上传到对应的表文件夹下。

hadoop fs -put hot_hero_skin_price.txt  /user/hive/warehouse/handsome.db/t_hot_hero_skin_price

执行查询操作,可以看出数据已经映射成功。 

select * from t_hot_hero_skin_price;

想一想:如果最后一个字段以String类型来定义,后续使用方便吗?

3 默认分隔符案例

文件team_ace_player.txt中记录了手游《王者荣耀》主要战队内最受欢迎的王牌选手信息,内容如下,要求在Hive中建表映射成功该文件。

1^A成都AG超玩会^A一诺
2^A重庆QGhappy^AHurt
3^ADYG^A久诚
4^A上海EDG.M^A浪浪
5^A武汉eStarPro^ACat
6^ARNG.M^A暴风锐
7^ARW侠^A渡劫
8^ATES滔搏^A迷神
9^A杭州LGD大鹅^A伪装
10^A南京Hero久竞^A清融

字段:id、team_name(战队名称)、ace_player_name(王牌选手名字)

分析一下:数据都是原生数据类型,且字段之间分隔符是\001,因此在建表的时候可以省去row format语句,因为hive默认的分隔符就是\001。

建表语句:

create table t_team_ace_player(
    id int,
    team_name string,
    ace_player_name string
);

建表成功后,把team_ace_player.txt文件上传到对应的表文件夹下。

hadoop fs -put team_ace_player.txt  /user/hive/warehouse/handsome.db/t_team_ace_player

执行查询操作,可以看出数据已经映射成功。

select * from t_team_ace_player;

想一想:字段以\001分隔建表时很方便,那么采集、清洗数据时对数据格式追求有什么启发?你青睐于什么分隔符?

4 指定数据存储路径

文件team_ace_player.txt中记录了手游《王者荣耀》主要战队内最受欢迎的王牌选手信息,字段之间使用的是\001作为分隔符。

要求把文件上传到HDFS任意路径下,不能移动复制,并在Hive中建表映射成功该文件。

create table t_team_ace_player_location(
id int,
team_name string,
ace_player_name string)
location ‘/tmp’;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194124.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM笔记(5)—— 运行时数据区—— 方法区

上一篇&#xff1a;JVM笔记&#xff08;4&#xff09;—— 运行时数据区——堆空间 一、栈、堆、方法区的交互关系 进程运行过程中&#xff0c;在方法中创建对象时通过方法区中的类型信息在堆中创建对应的对象&#xff0c;对象中又存有指向方法区中对应类型信息的指针&#xf…

Python采集热搜评论数据,制作词云分析,又是吃瓜的一天

前言 最近微博上的爆的热搜是不少啊&#xff0c;咳咳&#xff0c;23年1月31号记汪峰旷工一次 之前有营销号预言23年的娃瓜 已经爆出来一个了 好像是说还有两个来着 也不知道是谁的娃~ 现在已经没有什么可以震惊到我的了 胡歌都有娃了 彭于晏抓紧吧 有点点的无聊 就来用Pytho…

MySQL事件

文章目录事件介绍事件调度查询事件调度状态开关事件调度(临时)开关事件调度(永久)事件使用创建事件语法子句分析执行计划子句事件主体子句查询事件修改事件删除事件事件介绍 MySQL事件(event)是根据指定时间表执行的任务&#xff0c;称为计划事件。事件包含一个或多个SQL语句的…

【刷题】二进制求和

当你觉得小学二年级教的的竖式学会了以后&#xff0c;此题又是一记重击。 目录 前言 一、题目 二、找规律 三、思想 1.位数相同 2.位数不同 3.注意事项 四、具体实现 总结 前言 同上次做过的的二进制求和相似&#xff08;按位异或求出的是无进位和&#xff0c;按位与求…

大数据技术架构(组件)14——Hive:掩码函数杂项函数

1.4.8、掩码函数1.4.8.1、mask-->Hive2.1.01.4.8.12、mask_first_n->Hive2.1.01.4.8.13、mask_last_n -->Hive2.1.01.4.8.14、mask_show_first_n-->Hive2.1.01.4.8.15、mask_show_last_n -->Hive2.1.01.4.8.16、mask_hash -->Hive2.1.0支持版本返回值类型函数…

让你深夜emo的“网抑云”,是如何做产品设计的?

网易云音乐作为国内首个以“歌单”为核心架构的音乐APP&#xff0c;有的人喜欢它的热评&#xff0c;有的人却觉得它的版权太少&#xff0c;虽然网易云音乐不是曲库最丰富的听歌软件&#xff0c;但绝对是听歌软件里情感体验最好的。 我很好奇它具有什么力量&#xff0c;能够使用…

ReentrantReadWriteLock可重入读写锁

目录 读写锁&#xff1a; 锁降级 锁饥饿&#xff1a; 读写锁&#xff1a; 定义&#xff1a;一个资源能够被多个读线程访问&#xff0c;或者被一个写线程访问&#xff0c;但是不能同时存在读写线程。 特点:读写互斥&#xff0c;写锁独占&#xff0c;读读可共享,读没有完…

分布式学习第三天—远程调用和网关

Feign远程调用 Feign的介绍 Feign是一个声明式的http客户端&#xff0c;官方地址&#xff1a;https://github.com/OpenFeign/feign 其作用就是帮助我们优雅的实现http请求的发送 Feign远程调用的使用步骤 1.引入依赖 在子模型服务的pom文件中引入feign的依赖&#xff1a; &l…

【计网】入门知识

一些基本认识网络传输基本要素&#xff1a;网络编程&#xff1a;python的网络编程方式TCP和UDP一些编程技巧socket实现TCP通信网络传输基本要素&#xff1a; 有连接通道、传输字节数据、输入输出遵守一样的协议 网络编程&#xff1a; CS&#xff08;QQ下载客户端&#xff09…

linux防火墙究竟如何使用?iptables的原理与简单应用

1. 什么是防火墙&#xff1f; 在计算机体系中&#xff0c;防火墙是基于预定安全规则来监视和控制传入和传出网络流量的网络安全系统。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描&#xff0c;这样能够过滤掉一些攻击&#xff0c;以免其…

Vulkan 理解Vertex Input Description

此文为个人记录&#xff0c;感兴趣直接看https://zhuanlan.zhihu.com/p/450157594 首先&#xff0c;一个顶点的结构体 struct Vertex {glm::vec3 pos;glm::vec3 color; }CPU端给出顶点数据 const std::vector<Vertex> vertices {{{0.0f, -0.5f}, {1.0f, 0.0f, 0.0f}},…

Allegro如何显示盲埋孔钻孔所在层面操作指导

Allegro如何显示盲埋孔钻孔所在层面操作指导 在用Allegro做PCB设计的时候,涉及盲埋孔设计的时候,需要实时看到盲埋孔是打在哪层到哪层,如下图 实时显示了盲埋孔是从哪层到哪层的,比如1-3,3-6等等 如何显示,具体操作如下 选择Setup选择design Parameters

[golang Web开发] 3.golang web开发:处理请求

简介 Go语音的net/http包提供了一系列用于表示HTTP报文的结构,可以使用它处理请求和发送响应,其中Request结构代表了客户端发送的请求报文,下面是Request讲解 type Request struct {// Method指定HTTP方法&#xff08;GET、POST、PUT等&#xff09;。对客户端&#xff0c;"…

linux系统加固

linux安全加固 linux系统安全包括用户安全、权限安全、文件安全 从那些方面进行加固 身份鉴别 访问控制 安全审计 资源控制 入侵防范 在linux当中一切皆文件 身份鉴别 /etc/login.defs 文件功能 查看密码策略 /etc/login.defs文件定义了与/etc/passwd和/etc/shadow配套的用户限…

VOIP创建

一、介绍VOIP的推送证书的创建方式和普通的证书的创建方式基本一致。二、步骤首先需要生成证书签名的请求文件CerSingingRequest&#xff0c;打开钥匙串应用&#xff0c;点击钥匙串访问->证书助理->从证书颁发机构请求输入电子邮件和名称后保存到本地3.在developer.apple…

服务器防火墙 配置端口号

作为前端的我头次做运维的事情。 现在服务器是的默认端口好像只有80&#xff0c;443&#xff0c;其余端口都需要我们配置 域ping 通了&#xff0c;以为服务配置好了可以撸起袖子加油干&#xff0c;但是 访问公司的服务 出错了400 访问公司的服务xxx.168.30.xxx:8081&#xff…

【字符串】leetcode344.反转字符串(C/C++/Java/Python/Js)

leetcode344.反转字符串1 题目2 思路3 代码3.1 C版本3.2 C版本3.3 Java版本3.4 Python版本3.5 JavaScript版本4 总结打基础的时候&#xff0c;不要太迷恋于库函数。 1 题目 题源链接 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给…

国内最新餐饮品牌全案设计十大排名(2023年榜单)

餐饮全案设计是餐饮店经营过程之前的重要一步&#xff0c;想要打造一家特色餐饮店并不是一件简单的事。一来要满足功能性需求的同时还具有一定的审美性&#xff1b;二来既要尽可能高地提升空间利用率让顾客消费体验愉悦和服务员工作效率高&#xff0c;能够展现餐厅的主题和文化…