Python大数据之Hadoop学习——day06_hive学习02

2024-08-31 16:04

本文主要是介绍Python大数据之Hadoop学习——day06_hive学习02,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.hive内外表操作

1. 建表语法

create [external] table [if not exists] 表名(字段名 字段类型 ,字段名 字段类型,...)

[partitioned by (分区字段名 分区字段类型)]        # 分区表固定格式

[clustered by (分桶字段名) into 桶个数 buckets]        # 分桶表固定格式

[sorted by (排序字段名 asc|desc)]

[row format delimited fields terminated by '字段分隔符' ]        # 自定义字段分隔固定格式

[stored as textfile]        # 默认即可

[location 'hdfs://域名:8020/user/hive/warehouse/库名.db/表名'] # 默认即可

; # 注意: 最后一定加分号结尾

2. 数据类型

基本数据类型:

整数        int

小数        float double

字符串        string varchar

时间        date timestamp

3. 表分类

Hive中可以创建的表有好几种类型,分别是:

内部表(管理表或者托管表)

外部表(非管理表或者非托管表)

二.内部表基本操作

1. 知识点

创建内部表:create table [if not exists] 内部表名(字段名 字段类型,字段名 字段类型...)

[row format delimited fields terminated by '字段分隔符'];

复制内部表:方式1:like方式复制表结构        方式2:as方式复制表结构和数据

删除内部表:drop table 内部表名;

        注意:删除内部表效果是mysql中表的相关元数据被删除,同时存储在hdfs中业务数据本身也被删除

查看表格式话信息:desc formatted 表名;

-- 内部表类型:MANAGED_TABLE

注意:还可以使用truncate清空内部表数据        格式:truncate table 内部表名

三. 外部表基本操作[练习]

1. 知识点

创建外部表:create external table [if not exists] 外部表名(字段名 字段类型,字段名 字段类型,...)[row format delimited fields terminated by '字段分隔符'];

 

复制表:方式1:like方式复制表结构

注意:as 方式不可以使用

 

删除外部表:drop table 外部表名

注意:删除外部表效果是mysql中元数据被删除,但是存储在hdfs的业务数据本身被保存

 

查看表格式化信息:desc formatted 表名;

-- 外部表类型:EXTERNAL_TABLE

 

注意:外部表不能使用truncate清空数据本身

四 .查看/修改表

1. 知识点

查看所有表:show tables;

查看建表语句:show create table 表名;

查看表信息:desc 表名;

查看表结构信息:desc 表名;

查看表格式化信息:desc formatted 表名;        注意:formatted能够展示详细信息

修改表名:alter table 旧表名rename to 新表名

字段添加:alter table 表名 add columns (字段名 字段类型);

字段的替换:alter table 表名 replace columns (字段名 字段类型,...)

字段名和字段类型同时修改:alter table 表名 change 旧字段名 新字段名 新字段类型;

注意:字符串类型不能直接改数值类型

 

修改表路径:alter table 表名 set location ‘hdfs中存储路径’;

修改表属性:alter table 表名 set tblproperties('属性名'=‘属性值’)

五.默认分隔符

1.知识点:

创建表的时候,如果不指定分隔符,以后表只能识别默认的分隔符

一般为:\0001,SOH,^A,□

六.快速映射表

1. 知识点:

创建表的时候指定分隔符:create [external] table 表名(字段名 字段类型) row format delimited fields terminated by 符号;

 

加载数据:load data [local] inpath '结构话数据文件' into table 表名;

七.数据导入和导出

文件数据加载导入
1.直接上传文件

window页面上传

linux本地put上传

hdfs dfs -put 文件 路径

2.load加载文件:

从hdfs路径把文件移动到表对应存储路径中:

load data inpath 'HDFS文件路径' [overwrite] into table 表名;

 

从linux本地把文件上传到表对应存储路径中:

load data local inpath 'Linux文件路径' [overwrite] into table 表名;

3.insert插入数据

从其他表查询数据'追加'插入到当前表中:insert into [table] 表名 select 语句;

从其他表查询数据'覆盖'插入到当前表中:insert overwrite table 表名 select 语句;

文件数据导出
1.直接下载文件

web页面下载

get命令下载文件

需求: 已知search_log.txt文件在HFDS的/user/hive/warehouse/hive02.db/search_log路径下,要下载到linux系统

[root@node1 binzi]# hdfs dfs -get /user/hive/warehouse/hive02.db/search_log/search_log.txt /binzi
2. insert导出数据

查询数据导出到hdfs其他路径:insert overwrite directory 'hdfs存储该数据路径' select语句;

 

查询数据导出到linux本地中:insert overwrite local directory 'linux存储该数据路径' select语句;

 

注意:  overwrite默认是覆盖重写,所以在指定存储该数据路径的时候尽量指定一个空的目录

注意: 导出数据的时候不指定分隔符采用默认分隔符SOH,0001,?...

 

导出数据指定分隔符添加:row format delimite fields terminated by ‘分隔符’

3.hive_shell命令

hive命令执行sql语句:  hive -e "sql语句" > 存储该结果数据的文件路径

hive命令执行sql脚本:  hive -f sql脚本文件 > 存储该结果数据的文件路径

hql语句导出

# 以下命令都是在linux的shell命令行执行
# 3.1使用hive -e sql语句方式导出数据
[root@node1 ~]# hive -e 'select * from hive02.search_log;' > /home/hs1.txt
[root@node1 ~]# cat hs1.txt

hql语句

# 3.2使用hive -f 脚本文件方式导出数据
[root@node1 ~]# echo 'select * from hive02.search_log;' > /home/export.sql
[root@node1 ~]# hive -f export.sql > /home/hs2.txt
[root@node1 ~]# cat hs2.txt

这篇关于Python大数据之Hadoop学习——day06_hive学习02的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124355

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(