Hive的数据加载与导出

普通表的加载

1.load方式

load data [local] inpath [源文件路径] into table 目标表名;

 

从HDFS上加载数据,本质上是移动文件所在的路径

load data inpath '/user/student.txt' into table student;

 

从本地加载数据,本质上是复制本地的文件到HDFS上

load data local inpath '/user/student.txt' into table student;

 

 

2.insert方式

插入一条数据(单重,先生成临时表再拷贝到student中,效率低)

insert into table student values(00011,黄海霞,18);

 

插入多条数据(单重,查询结果导入student中,效率低)

insert into table student select * from stu where age >=18;

 

多重插入(只扫描一次源表,将结果插入到多个新表中,效率高,常用)

from stu insert into table student01 select * where age >=18 insert into table student02 select * where age <18;

 

 

分区表的加载(常用)

  • 一般不使用load方式,因为这种方式不会自动检验原表与目标表的列是否对应,数据易出错;
  • 一般也不建议使用insert方式单条插入;

静态分区,即分区个数较少,可列举:

1)手动添加分区

ALTER TABLE student ADD if not exists PARTITION(city='beijing');

ALTER TABLE student ADD if not exists PARTITION(city='shanghai');

 

2)添加数据

from stu insert into table student01 partition(city='beijing') select id, sname, age where city='beijing' insert into table student02 partition(city='shanghai') select id, sname, age where city='shanghai';

 

动态分区,即分区个数较多,比如日期、年龄:

1)修改分区模式为非严格模式

set hive.exec.dynamic.partition.mode = nonstrict;#hive2版本,默认是strict

set hive.exec.dynamic.partition = true;#hive1版本,先开启动态分区

set hive.exec.dynamic.partition.mode = nonstrict;#hive1版本,再开启非严格模式

 

2)添加数据

  • 若city是指定的自动分区字段,则select中必须包含city,且在最后一个;
  • 若分区字段是两个,city和age,则partition(city,age),city为主,age为次,select中city,age在最后且顺序不能变;

from stu

insert into table student01 partition(city) select id, sname, age, city

insert into table student02 partition(city) select id, sname, age, city ;

 

 

分桶表的加载

  • 不允许使用load方式;

1)先建一个分桶表student;

CREATE TABLE if not exists student(id int ,sname string ,age int, city string) clustered BY (age) sorted BY (city) INTO 3 buckets ROW FORMAT delimited FIELDS terminated BY ','

 

2)添加数据

insert into table student select * from stu;

  • 添加数据的时候,reducetask 实际运行个数,默认值是1,但是因为分3个桶,因此此时reducetask 实际运行个数=3;
  • reducetask 最大运行个数是1009;
  • 每一个reduce的吞吐量是256M;

 

=================================================================

数据的导出

单重

insert overwrite directory '/user/stu01.txt' select * from student where age >=18; #到HDFS

insert overwrite local directory '/user/stu01.txt' select * from student where age >=18; #到本地

 

多重

from student insert overwrite local directory '/user/stu01.txt' select * where age >=18 insert overwrite local directory '/user/stu01.txt' select * where age >=18;

到HDFS的话,去掉local即可

 

 

 

 

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

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

相关文章

电压压力蕊片_一文让你知道什么是压力变送器

一般来说&#xff0c;压力变送器主要由测压元件传感器(也称作压力传感器)、测量电路和过程连接件三部分组成。它能将测压元件传感器感受到的气体、液体等物理压力参数转变成标准的电信号(如4~20mADC等)&#xff0c;以供给指示报警仪、记录仪、调节器等二次仪表进行测量、指示和…

LeetCode 1497. 检查数组对是否可以被 k 整除(余数配对)

1. 题目 给你一个整数数组 arr 和一个整数 k &#xff0c;其中数组长度是偶数&#xff0c;值为 n 。 现在需要把数组恰好分成 n / 2 对&#xff0c;以使每对数字的和都能够被 k 整除。 如果存在这样的分法&#xff0c;请返回 True &#xff1b;否则&#xff0c;返回 False 。…

C# 多线程编程 ThreadStart ParameterizedThreadStart

原文地址&#xff1a;http://club.topsage.com/thread-657023-1-1.html 在实例化Thread的实例&#xff0c;需要提供一个委托&#xff0c;在实例化这个委托时所用到的参数是线程将来启动时要运行的方法。在.net中提供了两种启动线程的方式&#xff0c;一种是不带参数的启动…

Hive的查找语法

基本语法格式&#xff1a; select [all | DISTINCT ] a.id, a.sname, a.age from student a join student02 b on a.id b.id # 匹配函数 where a.age >18 # 条件语句 group by a.age having a.age >18 # 分组,having:分组后的筛选条件 order by a.age # 全局排序 sort …

动词ing基本用法_动词ing的用法

动词ing的用法2020-09-14 11:41:52文/董月表示现在(指说话人说话时)正在发生的事情&#xff1b;习惯进行&#xff1a;表示长期的或重复性的动作&#xff0c;说话时动作未必正在进行&#xff1b;表示渐变的动词有&#xff1a;get&#xff0c;grow&#xff0c;become&#xff0c;…

LeetCode 1498. 满足条件的子序列数目(排序+二分查找+快速幂)

1. 题目 给你一个整数数组 nums 和一个整数 target 。 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目。 由于答案可能很大&#xff0c;请将结果对 10^9 7 取余后返回。 示例 1&#xff1a; 输入&#xff1a;nums [3,5,…

Matlab编程学习笔记【待续】

最近想用Matlab进行数据分析&#xff0c;算法性能测试&#xff0c;平时由于用的是C、C&#xff0c;因此很多习惯都一时改不了&#xff0c;这里自己列出来一些Matlab中明显不同的地方。 矩阵单元元素访问方式&#xff1a;A(1,2)---A[1][2]选取矩阵某个行或者列&#xff1a;A(:,1…

Hive的视图

创建视图 create view my_view as select * from student; 注意&#xff1a; hive中的视图仅仅是存储了SQL语句的快捷方式&#xff0c;在查询的时候才执行&#xff1b;hive中的视图只有逻辑视图&#xff0c;没有物化视图&#xff1b;hive中的视图只支持查询&#xff0c;不支…

animation 先执行一次 在持续执行_这一次,彻底弄懂 JavaScript 执行机制

本文来源&#xff1a;ssssyokihttps://juejin.im/post/6844903512845860872不论你是javascript新手还是老鸟&#xff0c;不论是面试求职&#xff0c;还是日常开发工作&#xff0c;我们经常会遇到这样的情况&#xff1a;给定的几行代码&#xff0c;我们需要知道其输出内容和顺序…

[scikit-learn 机器学习] 5. 多元线性回归

文章目录1. 多元线性回归2. 多项式回归3. 正则化4. 线性回归应用举例&#xff08;酒质量预测&#xff09;4.1 数据预览4.2 模型验证5. 梯度下降法本文为 scikit-learn机器学习&#xff08;第2版&#xff09;学习笔记1. 多元线性回归 模型 yαβ1x1β2x2...βnxny \alpha\bet…

mac笔记本修改 mysql 的密码

第一种 mysql版本&#xff1a;5.7.17 1.首先我们要关闭mysql服务 sudo /usr/local/mysql/support-files/mysql.server stop 2.我们要用安全模式启动mysql sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 3.使用root账号登录mysql服务 /usr/local/mysql/bin/mysql …

LeetCode 831. 隐藏个人信息

1. 题目 给你一条个人信息字符串 S&#xff0c;它可能是一个 邮箱地址 &#xff0c;也可能是一串 电话号码 。 我们将隐藏它的隐私信息&#xff0c;通过如下规则: 电子邮箱 定义名称 name 是长度大于等于 2 &#xff08;length ≥ 2&#xff09;&#xff0c;并且只包含小写…

oa项目经验描述_简历中项目经验模版

项目名称&#xff1a;OA(办公自动化)开发工具&#xff1a;MyEclipse 8.6 , Oracle 11g , Tomcat 6.0.18项目描述(1, SSH框架版)&#xff1a;OA主要功能模块分为首页Portlet展示、协同审批、协同工作、日历、资源管理、知识中心、新闻中心、通讯录、系统管理。是一套很好的办公自…

分离

web2.0到处都是分离与聚合的思想&#xff1a; jquery实现了表现层的行为与内容的分离 zendframework为首的mvc架构实现了逻辑架构的控制、模块、表现层的分离 mysql为例的master-slave架构实现了服务与备份的分离 hadoop为首的虚拟化架构实现了单点计算与群体计算的结合 css实现…

hive-内置函数(常用内置函数汇总)

show functions; #查看所有内置函数&#xff0c;共271个 show function sum; #查看sum函数的描述信息 show function extended sum; #查看内置函数的描述信息和举例的使用方法 举例数据表&#xff1a;stu id name address score credit 01 huang hebi,changzhou,dalian …

LeetCode 828. 统计子串中的唯一字符(中心扩展)

1. 题目 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符&#xff0c;并返回唯一字符的个数。 例如&#xff1a;s “LEETCODE” &#xff0c;则其中 “L”, “T”,“C”,“O”,“D” 都是唯一字符&#xff0c;因为它们只出现一次&#xff0c;所以 coun…

钢笔的保养

钢笔其实很泼辣的不需要用心的保养&#xff0c;但如果太不注意了&#xff0c;也会早早损毁了一支好笔。所以&#xff0c;为了自己方便地更长久些&#xff0c;还是要保养一下。保养的方法很简单&#xff0c;就是&#xff1a; 用前先浸&#xff0c;墨水不混&#xff0c;定期清洗。…

hive - 自定义函数(超详细步骤,手把手的交)

用Java开发自定义函数&#xff0c;步骤&#xff1a; 1.eclipse上新建一个工程project&#xff08;db2019)&#xff1b; 2.导jar依赖包&#xff1a; db2019右键 --build path --configure... --add library --user library --new(新建一个library(hive2.3.2_jar)) --add ext…

LeetCode 1053. 交换一次的先前排列

1. 题目 给你一个正整数的数组 A&#xff08;其中的元素不一定完全不同&#xff09;&#xff0c;请你返回可在 一次交换&#xff08;交换两数字 A[i] 和 A[j] 的位置&#xff09;后得到的、按字典序排列小于 A 的 最大可能排列。 如果无法这么操作&#xff0c;就请返回原数组…

bootstrap 树形表格渲染慢_layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)...

概述后台框架中使用树状表格是非常常用的操作&#xff0c;layUI本身并没有这种组件。 第三方的treetable.js做到了完美的实现&#xff0c;但是不能实现在双击时异步加载数据&#xff0c;本文就是站在了巨人的肩膀上实现的异步加载的树状表格~1. 使用说明本组件基于treetable.js…