首页 > 编程语言 >Python大数据之Hadoop学习——day07_Hive分区表和分桶表

Python大数据之Hadoop学习——day07_Hive分区表和分桶表

时间:2024-09-02 17:21:50浏览次数:11  
标签:分桶 Python 分区 hadoop 分区表 table 字段名

目录

一.分区表

一级分区

多级分区

分区操作

hadoop_hive文档

二.分桶表

基础分桶表:

分桶表排序:

分区表和分桶表区别


一.分区表

分区表特点:需要产生分区目录,查询的时候使用分区字段筛选数据,避免全表扫描,替身查询效率

 

效率上:如果分区表,在查询数据的时候没有分区字段去筛选数据,效率不变

  

分区字段名注意:分区字段名不能和原有字段名重复,因为分区字段名要作为字段拼接到表后

一级分区

知识点:

创建分区表:create [external] table [if not exists] 表名(字段名 字段类型,字段名 字段类型,...) partitioned by (分区字段名 分区字段类型)...;

 

自动生成分区目录并插入数据:load data [local] inpath '文件路径' into table 分区表名

partition (分区字段名='值');

 

注意:如果加local后面文件路径应该是linux本地路径,如果没有加那么就是hdfs文件

多级分区

知识点:

创建分区表:create [external] table [if not exists] 表名(字段名 字段类型,字段名 字段类型,...) partitioned by (一级分区字段名 分区字段类型, 二级分区字段名 分区字段类型 , ...);

 

自动生成分区目录并插入数据:load data [local] inpath '文件路径' into table 分区表名 partitioned (一级分区字段名='值',二级分区字段名='值' , ...);

 

注意: 如果加local后面文件路径应该是linux本地路径,如果没有加那么就是hdfs文件路径

分区操作

知识点:

添加分区:alter table 分区表名 add partition (分区字段名='值',....);

 

删除分区:alter table 分区表名 drop partition (分区字段名='值',...);

 

修改表名:alter table 分区表名 partition (分区字段名='旧值',...) rename to partition (分区字段名=‘新值’,...);

 

查看所有的分区:show partitions 分区表名;

 

同步/修复分区:msck repair table 分区表名;

hadoop_hive文档

hive文档: https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties
hdfs文档: https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
yarn文档: https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
mr文档: https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

二.分桶表

分桶表特点:需要产生分桶文件,查询的时候特定操作上提升效率(过滤,join,分组,抽样)

 

效率上:如果分桶表,在查询数据的时候没有使用分桶字段去筛选数据,效率不变

 

分桶字段名注意: 分桶字段名必须是原有字段名, 因为分桶需要根据对应字段值取余数把余数相同的数据放到同一个分桶文件中

基础分桶表:

知识点:

create [external] table [if not exists] 表名(

        字段名 字段类型 

)

clustered by (分桶字段名)

into 桶数量 buckets;

分桶表排序:

知识点:

create [external] table [if not exists] 表名 (

        字段名 字段类型

)

clustered by (分桶字段名)

sorted by (排序字段名 asc|desc)        # 注意:asc升序(默认) desc降序

into 桶数量 buckets;

分区表和分桶表区别

标签:分桶,Python,分区,hadoop,分区表,table,字段名
From: https://blog.csdn.net/weixin_46010015/article/details/141805521

相关文章

  • Allen基因图谱:python Aabgen的安装
    1.abagen使用教程的官方链接:abagen:AtoolboxfortheAllenBrainAtlasgeneticsdata—abagen0.1.3-doc+0.g2aeab5b.dirtydocumentation2.在安装abagen之前先提前安装好一下的包window系统操作步骤:(1)安装好python(假如安装在E盘,E:\python\)(2)win+R打开任务管理器,输入......
  • 基于python+flask框架的基于移动端的疫情环境下大学生心理服务平台(开题+程序+论文) 计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球疫情的持续蔓延,大学生群体作为社会的重要组成部分,其心理健康问题日益凸显。疫情期间,校园封闭管理、线上学习模式的转变、社交活动......
  • 基于python+flask框架的企业内部通讯系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着企业规模的日益扩大和业务的全球化发展,企业内部沟通的高效性与及时性成为了影响企业运营效率与团队协作的关键因素。传统的沟通方式如......
  • 基于python+flask框架的心理健康管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代社会节奏的加快与竞争的日益激烈,心理健康问题已成为不容忽视的社会议题。据统计,全球范围内心理健康问题的患病率逐年上升,对个人生......
  • 基于python+flask框架的基于web的线上考试管理系统的设计与实现(开题+程序+论文) 计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,教育领域正经历着深刻的变革。传统考试模式因其效率低下、管理繁琐且难以适应大规模、远程教学的需求,已逐渐显现出......
  • Tushare Pro 新版发布,免费、开源的python财经数据接口包
     Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Py......
  • Python 元组
    访问元组修改元组删除元组元组运算符元组索引,截取无关闭分隔符元组内置函数Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下实例:tup1=('physics','chem......
  • python入门每日一练2023/2/10
    python入门每日一练,可以提高您的python水平,今天是2月10日,上一课的答案是foriinrange(8):print(i)qq="xxxxxxxxx"email="@qq.com"如何将上面的字符串组成一段邮箱地址?......
  • python入门每日一练2023/2/13
    python入门每日一练,可以提高您的python水平,今天是2月13日,上一课的答案是foriinrange(1,len(strb)+1):ifstrb[i]==p:print(i)qq="qq"www="www"com=".com"如何组成www.qq.com网址?(难度★☆☆☆☆)......
  • python入门每日一练2023/2/14
    python入门每日一练,可以提高您的python水平,今天是2月14日,上一课的答案是url=www+qq+coma=3.1415926b=3.1415926c=a+bc等于几?(难度★☆☆☆☆)......