热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hive中表数据的导入导出和查询

Hive表数据的导入从本地导入loaddatalocalinpath‘local_path’intotabletable_name;hive4.pnghive5.png从hdfs导

Hive表数据的导入

  • 从本地导入

load data local inpath ‘local_path’ into table table_name;

《Hive中表数据的导入导出和查询》 hive4.png

《Hive中表数据的导入导出和查询》 hive5.png

  • 从hdfs导入

load data inpath ‘hdfs_path’ into table table_name;

《Hive中表数据的导入导出和查询》 hive6.png

  • 覆盖的方式导入

load data local inpath ‘local_inpath’ overwrite into table table_name;
load data inpath ‘hdfs_inpath’ overwrite into table table_name;

  • 创建表时通过子查询加载(会自动创建表结构)

    《Hive中表数据的导入导出和查询》 hive7.png

  • insert加载子查询到已创建好的表中(手动创建表结构)

hive (test_db)> create table emp3 like emp;
hive (test_db)> insert into table emp3 select * from emp;

  • 在创建表时location 指定文件位置(外部表)

create table … location ‘hdfs_location’;

  • 分区表加载数据

load data [local] inpath ‘paht’ into table table_name partition(partioncol1=val1…);

Hive查询结果和表数据的导出

  • 导出到本地文件(目录数据会被覆盖)

    《Hive中表数据的导入导出和查询》 hive9.png

  • 导出到hdfs(目录数据会被覆盖,如果这个目录不存在则会自动创建)

    《Hive中表数据的导入导出和查询》 hive11.png

  • 用hive的-e、-f命令导出(不会覆盖数据)

    《Hive中表数据的导入导出和查询》 hive10.png

  • 利用sqoop导入导出

排序

  • order by:order by子句对一列按升序(asc)或降序(desc)排列。但是只能限制于一个reduce。

hive (test_db)> select sal from emp order by sal desc;

《Hive中表数据的导入导出和查询》 hive12.png

  • sort by:对每个reduce中的数据进行单独排序,但是全局不一定有序。

hive (test_db)> set mapreduce.job.reduces=3;
hive (test_db)> select sal,deptno from emp sort by sal desc;

《Hive中表数据的导入导出和查询》 hive13.png

  • distribute by:shuffle中的分区默认是按照key值计算hash值然后取余均匀的分发到reducer中。distribute by可以设置map端输出后是按照哪一个字段进行hash取余分区的。

hive (test_db)> select sal,deptno from emp distribute by deptno sort by sal desc;

《Hive中表数据的导入导出和查询》 hive14.png

  • cluster by:当dstribute by和sort by字段相同时,可以使用cluster by,相当于一种简写方式。

分组

  • group by和having group by对一列进行分组,一般与聚合函数结合使用

hive (test_db)> select avg(sal) avg_sal,deptno from emp group by deptno having avg_sal>2000;

《Hive中表数据的导入导出和查询》 hive15.png

  • over(partition by):与group具有同样的分组功能,但是显示方式会不同。

hive (test_db)> select sal,deptno,avg(sal) over(partition by deptno) avg_sal from emp;

《Hive中表数据的导入导出和查询》 hive16.png

表的join

  • 等值join:只有进行连接的两个表中都存在于连接标准相匹配的数据才会保存下来。

hive (test_db)> select e.empno,e.ename,d.deptno from emp e join dept d on e.deptno=d.deptno;

  • 左join和右join:left join返回左表中的所有值,加上右表,如果右表对应项没有则用null填充。right join相反

select e.empno,e.ename ,d.deptno ,e.sal from emp e left join dept d on e.deptno=d.deptno;
select e.empno,e.ename ,d.deptno ,e.sal from emp e right join dept d on e.deptno=d.deptno;


推荐阅读
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 本文介绍了如何使用Hive分析用户最长连续登录天数的方法。首先对数据进行排序,然后计算相邻日期之间的差值,接着按用户ID分组并累加连续登录天数,最后求出每个用户的最大连续登录天数。此外,还探讨了该方法在其他领域的应用,如股票市场中最大连续涨停天数的分析。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文总结了在SQL Server数据库中编写和优化存储过程的经验和技巧,旨在帮助数据库开发人员提升存储过程的性能和可维护性。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 本文探讨了一种高效的算法,用于生成所有数字(0-9)的六位组合,允许重复使用数字,并确保这些组合的和等于给定的整数N。该算法通过优化搜索策略,显著提高了计算效率,适用于大规模数据处理和组合优化问题。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 深入理解Spark框架:RDD核心概念与操作详解
    RDD是Spark框架的核心计算模型,全称为弹性分布式数据集(Resilient Distributed Dataset)。本文详细解析了RDD的基本概念、特性及其在Spark中的关键操作,包括创建、转换和行动操作等,帮助读者深入理解Spark的工作原理和优化策略。通过具体示例和代码片段,进一步阐述了如何高效利用RDD进行大数据处理。 ... [详细]
  • sh cca175problem03evolveavroschema.sh ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
author-avatar
wuyanting67412
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有