Hive操作命令上手手册

2024-01-09

内容来自于《大数据Hive离线计算开发实战》

Hive原理

Hive是一个基于Hadoop的数据仓库和分析系统,用于管理和查询大型数据集。以下是Hive的原理:

  • 数据仓库:Hive将结构化的数据文件映射成一张表,并提供类SQL查询功能。用户可以使用类似SQL的查询语言(HQL)来管理和查询这些数据。Hive的表是纯逻辑表,本质上是Hadoop的目录/文件,达到了元数据与数据存储分离的目的。
  • 转换机制:Hive的工作原理是通过将查询语句转换成MapReduce程序来执行。当用户输入Hive SQL时,它将被转换成一系列的MapReduce操作,从而完成查询的任务。这样可以提高性能,降低运行时间。
  • 运行环境:Hive基于Hadoop,使用HDFS作为存储,使用MapReduce进行计算。Hive还包含一个Hive服务器,这是一个守护进程,用于管理查询和存储结果。
  • 扩展性:Hive支持自定义函数(UDF),使用户可以根据自己的需要定义函数,以满足自己的数据挖掘需求。此外,Hive还支持自定义存储格式,可以将数据存储在不同的格式中,以方便查询。
  • 高效性:Hive支持对HDFS上的数据进行并行处理,支持多种数据查询和分析。通过这种方式,Hive可以提高数据存储和查询的效率,从而提高系统性能。

总的来说,Hive是一个用于大数据处理的工具,其原理是通过将查询语句转换成MapReduce程序来执行,并利用Hadoop和HDFS进行存储和计算。通过这种方式,Hive可以简化复杂的数据挖掘和大数据分析工作,提高系统性能和效率。

对新手来说,你其实可以理解我就是正常操作结构化的数据库,类似于操作MySQL、PostgreSQL等数据库,写普通的SQL语句进行数据查询、分析。那我该篇文章也就是梳理最简单的最全的操作方法,帮助刚上手Hive的程序员快速开始写SQL语句进行查询分析数据。

Hive数据类型

基本数据类型

数据类型 长度
TINYINT 1byte有符号整数
SMALLINT 2byte有符号整数
INT 4byte有符号整数
BIGINT 8byte有符号整数
BOOLEAN 布尔类型 true 或者 false
FLOAT 单精度浮点数
DOUBLE 双精度浮点数
STRING 字符序列,可以指定字符集;可以使用单引号或双引号
TIMESTAMP 整数、浮点数或者字符串
BINARY 字节数组

集合数据类型

数据类型 描述
STRUCT 与C语言中的结构 struct类型相似,都可以通过“点”符号访问元素内容。例如,某表中某个列的数据类型为STRUCT(firName STRING,lastName STRING),那么第一个元素可通过字段名.firName来引用
MAP MAP是一个键值对映射集合。例如,表中某个列的数据类型是MAP,存放数据的格式是键:值,通过键就可以获取值
ARRAY ARRAY数组是一组具有相同类型变量的集合,这些变量被称为数组的元素,每个元素度有一个下标编号,编号从0开始
STRUCT数据类型案例
create table enterprise.employee(id int,info struct<name:string,age:int>) row format delimited fields terminated by ',' collection items terminated by ':';

数据实例

1,zhangsan:10
2,lisi:20
3,wangwu:30
MAP数据类型
create table enterprise.employee_1(id int,perf Map<string,int>) row format delimited fields terminated by '\t' collection items terminated by ',' map keys terminated by ':';

数据案例

1   job:80,team:60,person:50
2   job:60,team:70
3   job:80,team:90,person:100
ARRAY数据类型
create table enterprise.employee_2(name string,emp_id_list array<int>) row format delimited fields terminated by ',' collection items terminated by ':';

数据案例

zhangsan,1:2:3
lisi,4:5:6
wangwu,7:8:9

Hive数据定义与操作

HiveQL数据定义语言

创建数据库
hive> create database enterprise;

如果数据库 enterprise 已经存在的话,会跑出一个异常。

所以命令可以改为

hive> create database if not exists enterprise;

查看Hive中所包含的所有数据库

hive> show databases;

查询数据库以e开头数据库

hive> show databases like 'e.*'

我们还可以为每个数据库增加描述

hive>create database if not exists enterprise commit '企业信息表';

我们也能查看数据库 enterprise 的信息

describe database enterprise;

通过数据库信息可知,在 HDFS 文件系统上, enterprise 数据库是以“ .db ”结尾,这是 Hive 数据仓库的设计,用来标识该目录是数据库目录,同时可以知道父目录是 /user/hive/warehouse ,该父目录层级可以在 Hive 的配置文件 hive-site.xml 中的 hive.metastore.warehouse.dir 属性进行配置。

<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
</property>
删除数据库
//删除数据库
hive> drop database enterprise;

//防止数据库不存在的时候,抛出异常
hive> drop database if exists enterprise;

// Hive自己先删除数据库中的表,然后删除数据库
hive> drop database if exists enterprise cascade;
创建表
create table if not exists enterprise.account(acc_name string,acc_balance double) row format delimited fiedls terminated by '\t' location '/user/hive/warehouse/enterprise.db/account';

注意,数据目录总是以“ .db ”结尾的,其中 enterprise.db 目录下的子目录 account 就是表,所以我们说 Hive 中的表也是一个表目录。即在 HDFS 分布式文件系统上所创建的目录。默认情况下, Hive 总是将创建的表目录放置在这个表所属的数据库目录下。

我们可以列举指定数据库下的表

hive> show tables in enterprise;
管理表

管理表也称内部表或临时表, Hive 控制着管理表的整个生命周期,默认情况下 Hive 管理表的数据存放在 Hive 主目录 /usr/hive/datawarehouse/ ,并且当我们删除一张表时,这张表的数据也会相应地被删除。我们上述操作建表都是建的是管理表。

外部表

Hive中的外部表( External Table )是一种特殊类型的表,它指向已经在 HDFS 中存在的数据。与内部表( Managed Table )不同,外部表不会移动数据到数据仓库目录中,只是与外部数据建立一个链接。

以下是关于 Hive 外部表的一些主要特点:

    1. 指向已存在的数据:外部表指向已经在 HDFS 中存在的数据,可以创建 Partition
    1. 只读性:外部数据表都是只读的,因此在外部表不能够执行 DML 操作,也不能创建索引。
    1. 元数据组织:它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异。
    1. 删除特性:当删除一个外部表时,仅删除该链接,并不会删除实际的数据。
    1. 访问方式:对外部表的访问可以通过 SQL 语句来完成,而不需要先将外部表中的数据装载进数据库中。
    1. 数据位置:在创建外部表时,可以自己指定目录位置( LOCATION )。

总的来说, Hive 的外部表提供了一种方便的方式来查询和管理已经在 HDFS 中存在的数据,同时保持了 Hive 表的元数据组织特性。它特别适用于想要在 Hive 之外使用表的数据的情况,例如多个部门想使用一个表的数据。

在创建表时,如果加上关键字 external ,则创建为外部表。外部表中的数据生命周期不受 Hive 的控制,且可以和其他外部表进行数据的共享。

create external table product(pro_name string,pro_price double) row format delimited fields terminated by '\t' location '/data/stocks';
修改表

创建表

create table student(name string,age int) row format delimited fields terminated by '\t';

修改表名

alter table student rename to stu

增加字段

alter table stu add columns(sex string,birthday string)
删除表
drop table tableName;
分区表

随着数据库中数据量不断激增,就不得不考虑数据库存储和计算性能问题。Hive就是使用分区表的结构来解决问题的。

Hive分区的概念与传统关系型数据库表分区不同。传统数据库的表分区方式,就MySQL而言,是指将一张表分解成多个更小的、容易管理的部分。从逻辑上看只有一张表,单底层却是由多个物理分区组成的,每个物理分区中存储真实的数据,在数据插入的时候自动分配分区,这些物理分区可以分布在不同的物理服务器设备上。由于Hive表中的数据实际存储在HDFS上,所以Hive的分区方式是在HDFS文件系统上的一个分区名对应一个目录名,子分区名就是子目录名,并不是一个实际字段。因此可以这样理解,在插入数据的时候指定分区,其实就是新建一个目录或者子目录,并在相应的目录上添加数据文件,实现Hive表分区的功能。

所以概括来说,Hive的分区是创建层级目录的一种方式。

静态分区

创建一张静态分区表student_partition,单分区列为sex

create table student_partition(name string,age int) partitioned by(sex string) row format delimited fields terminated by '\t';

load数据

load data local inpth '/home/school/student.txt' into table student_partition partition(sex='woman')

创建一张静态分区表student_partition,多分区列为sex、native

create table student_partition_multi(name string,age int) partitioned by(sex string,native string) row format delimited fields terminated by '\t';

load数据

load data local inpth '/home/school/student.txt' into table student_partition_multi partition(sex='man',native='GanSu')
动态分区

如果在实际开发中经常使用静态分区的话,在插入数据的时候,就必须首先知道有哪些分区类型,针对每一个分区要单独使用 load data 命令载入数据。使用Hive的动态分区就可以解决自动将数据分配到各自分区。动态分区和静态分区的区别就是不用指定分区目录,由系统自己选择

开启动态分区功能

set hive.exec.dynamic.partition=true;
//此属性的默认值是strict,意思是不允许分区列全部是动态的。将其值设置为nonstrict,意思是所有的分区都是动态的
set hive.exec.dynamic.partition.mode=nonstrict;
//最大动态分区个数
set hive.exec.max.dynamic.partitions.pernode=1000;

动态分区表

create table student_partition_multi(name string,age int) partitioned by(sex string,native string) row format delimited fields terminated by '\t';

load数据

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

写入分区表

insert overwrite table student_partition_multi partition(sex,native) select name,age,sex,native from student;

HiveQL数据操作

经查询语句向表中插入数据
insert overwrite table sogou.sogou_xj select * from sogou.sogou_500w where keyword like '%仙剑奇侠传%'
单个查询语句中创建表并加载数据
create table sogou.sogou_xj_backup as select * from sogou.sogou_xj;
导入数据

建表

create external table if not exists sogou.sogou_liangjian(ts string,uid string,keyword string,rank int,orders int,url string) row format delimited fields terminated by '\t' stored as textfile location '/sogou/liangjian';

通过HDFS命令行接口直接将liangjian.txt数据导入Hive表,其实就是将数据文件放到LOCATION属性所指向的路径下,然后就可以在Hive中通过HiveQL进行操作查询了。

hadoop fs -put liangjian.txt /sogou/liangjian
导出数据
hadoop fs -get /user/hive/warehouse/sogou.db/sogou_xj_backup/000000_0

HiveQL数据查询基础

HiveQL数据查询语句

SELECT语句
select */field1,field2 from tableName
WHERE语句
select count(*) from sogou.sogou_500w where keyword like '%亮剑%'
GROUP BY语句

GROUP BY语句通常会和聚合函数一起使用,其语意为按照一个或者多个列对结果进行分组,然后使用聚合函数对每个组执行聚合运算。

统计搜索过关键词包含“亮剑”一词的用户及关键词搜索频率

select t.uid,t.keyword,count(*) from (select * from sogou.sogou_500w where keyword like '%亮剑%') t group by t.uid,t.keyword
HAVING分组筛选

HAVING子句允许用户通过一个简单的语法,来完成原本需要通过子查询才能对GROUP BY语句产生的分组结果进行条件过滤的任务。

统计搜索关键词中包含“亮剑”一词的用户及关键词搜索次数,并且过滤出搜索次数大于30的用户

select t.uid,t.keyword,count(*)  as cnt from (select * from sogou.sogou_500w where keyword like '%亮剑%') t group by t.uid,t.keyword having cnt >= 30;
ORDER BY语句和SORT BY语句

Hive中ORDER BY语句和SQL中的定义是一样的,其会对查询结果集执行一次全局排序,也就是说会有一个所有数据都通过一个reducer进行处理的过程。对于大数据集,这个过程可能会消耗太多的时间。

Hive增加了一个可供选择的方式,那就是SORT BY语句,该语句只会在每个reducer中对数据排序,也就是说会执行一个局部排序,因此可以保证每个reducer的输出数据都是有序的(但并非全局有序),如此就可以提高后面进行全局排序效率。

因此若要在数据量级非常大的情况下排序,可以选择SORT BY语句,平时可以选择ORDER BY语句完成排序任务。

select uid,count(*) as cnt from sogou.sogou_500w group by uid order by cnt desc limit 30;

HiveQL连接查询语句

库表准备

create database if not exists scott;

use scott;

//员工表 emp
create external table emp(empno varchar(50),ename varhcar(30),job varchar(50) mgr varchar(30) sal double,deptno varchar(50)) row format delimited fields terminated by ',' stored as textfile location '/scott/emp'


//部门表 dept
create external table dept(deptno varchar(50),dname varchar(30),loc varchar(30)) row format delimited fields terminated by ',' stored as textfile location '/scott/dept'

Hive的连接分为:内连接、自然连接和外连接

内连接

也可以简写为 join ,只有进行连接的两个表中都存在于连接标准相匹配的数据才会被保留下来,内连接分为等值连接和不等值连接。

等值连接是指,在使用等号操作符的连接。

查看部门30中的员工,要求显示员工的姓名、职位、所属部门编号以及部门名称。

select emp.ename,emp.job,dept.deptno,dept.dname from emp inner join dept on emp.deptno = dept.deptno where dept.deptno = 30;

不等值连接是指,使用 > 、>=、 <=、 < 、!> 、!< 和<> 操作符的连接。

获取部门编号不等于10的所有员工的姓名、职位以及员工所属的部门名称和部门地理位置信息。

select emp.ename,emp.job,dept.dname,dept.loc from emp innert join dept on emp.deptno = dept.deptno where dept.deptno != 10;
自然连接

自然连接是在广义笛卡尔积中选出同名属性上符合相等条件的元祖,再进行投影,去掉重复的同名属性,组成新的关系。即自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动将它们连接起来,并返回所有符合条件的结果,它是通过对参与表关系中所有同名的属性对取等(即相等比较)来完成,故无需自己添加连接条件。自然连接和外连接的区别在于,对于无法匹配的记录,外连接会虚拟一条与之匹配的记录来保全连接表中的所有记录,但自然连接不会。

查询部门编号为10和30的所有员工的姓名、职位和部门名称

select ename,job,dname from emp natural join dept where dept.deptno in ('10','30');
外连接

外连接分为左外连接查询、右外连接查询和全外连接。

左外连接即以连接中的左表为主,返回左表的所有信息和右表中符合连接条件的信息,对于右表中不符合连接条件的则补空值。

select e.empno,e.ename,e.job,d.deptno,d.dname,d.loc from emp e left outer join dept d on deptno = d.deptno

右外连接即以连接中的右表为主,返回右表的所有信息和左表中符合连接条件的信息,对于左表中不符合连接条件的则补空值。

select e.empno,e.ename,e.job,d.deptno,d.dname,d.loc from emp e right outer join dept d on deptno = d.deptno

全外连接查询结果等于左外连接和右外连接的和

select e.empno,e.ename,e.job,d.deptno,d.dname,d.loc from emp e full outer join dept d on deptno = d.deptno

自连接指连接的表是同一张表,使用自连接可以将自身表的一个镜像当成另一个表来对待,所以自连接适用于表自己喝自己的连接查询。

在员工表emp中我们想查询经理的下属员工有哪些

select e1.empno,e2.empno,e2.ename,e2.job,e2.sal from emp e1,emp e2 where e1.empno = e2.mgr;

HiveQL数据查询进阶

查看Hive的内置函数

show functions;

数学函数

加法“+”

select 10+2;

减法“-”

select 10-2;

乘法“*”

select 10*2;

除法“/”

select 10/2;

round四舍五入函数的应用

select round(88.945,2);

ceil向上取整函数应用

select ceil(88.12);

floor向下取整函数的应用

select floor(88.92);

pow取平方函数的应用

select pow(3,2);

pmod取模函数,即取余数的应用

select pmod(13,3);

字符函数

lower转小写函数

select lower('AAAAA');

upper转大写函数

select upper('AAAAA');

length字符串长度函数

select length('AAAAA');

concat字符串拼接函数

select concat("hadoo","hive");

substr求子串函数

// 从字符串a中,第3位开始取,取右边所有的字符
sekect substr("hadoop",3);

// 从字符串a中,第b位开始取,取c个字符
sekect substr("hadoop",3,1);

trim去前后空格函数

select trim("  hive  ");

get_json_object用于处理json格式数
据的函数

select get_json_object('{"name":"zhangsan","age":12}','$.name')

转换函数

类型转换函数cast应用

select cast(99 as double);

select cast("2020-01-30" as date);

日期函数

select year("2019-9-16 17:18:10"),month("2019-9-16 17:18:10"),day("2019-9-16 17:18:10")

to_date返回日期时间字段中的日期部分

select to_date("2019-9-16 17:18:10")

条件函数

case…when… 是,条件表达式,语法格式为case A when B then C [when D then E]* [else F] end.

对A来说,如果判断为B则返回C,如果判断为D则返回E(此处判断条件可为多个),如果以上都不是则返回F。注意,最后还有一个end结束符。

select ename,job,sal case job wher 'manager' then sal + 2000 when 'clerk' then sal + 1000 else sal + 400 from emp;

聚合函数

count:返回行数

select count(*) from emp;

sum:组内某列求和函数

select sum(sal),job from emp group by job;

min:组内某列最小值

select min(sal),job from emp group by job;

max:组内某列最大值

select max(sal),job from emp group by job;

avg:组内某列平均值

select avg(sal),job from emp group by job;

Hive视图

Hive中的视图和关系型数据库中视图在概念上是一致的,都是一组数据的逻辑表示,享用基本原始表的数据而不会另生成一份数据,是纯粹的逻辑对象。本质上,视图是一条SQL语句的集合,但该条SQL不会立即执行,我们称其为逻辑视图,它没有关联的实际存储。当有查询需要引用视图时,Hive才真正开始将查询中的过滤器推送到视图中去执行。

创建视图

语法

create view [if not exists] db_name.view_name as select [column_name...] from table_name where ...

创建一个视图,其内容包含表sogou_500w中关键词不为空的前1000条数据

create view sogou_view as select * from sogou_500w where keyword is not null limit 1000;

查看视图

show tables;

desc sogou_view;

desc formatted sogou_view;

删除视图

drop view if exists sogou.sogou_view;

Hive分桶表

Hive分桶表是相对于分区表来说的,分区表它属于一种粗粒度的划分,而分桶表是对数据进行更细粒度的划分。分桶表将整个数据内容按照某列属性值的哈希值进行区分,例如按照用户ID属性分为3个桶,分桶的规则就是对分桶字段值进行取哈希值,然后用该哈希值除以桶的个数取余数,余数决定了该条记录将会被分在哪个桶中。余数相同的记录会被分子啊同一个桶中。需要注意的是,在物理结构上一个桶对应一个文件,而分区表的分区只是一个目录,至于目录下有多少数据是不确定的。

创建表

通过clustered by(字段名) into bucket_num buckets 分桶,意思是根据字段名分成多个桶

create table sougou_bucket(uid string,keyword string) comment 'test' clustered by(uid) into 5 buckets row format delimited fields terminated by '\t';

插入数据

必须使用启动MapReduce作业的方式才能把文件顺利分桶,若使用load data local inpath 这种方式加载数据,即使设置了强制分桶,也不起作用。注意,插入数据之前,需要设置属性hive.enforce.bucketing=true,其含义是数据分桶是否被强制执行,默认为false,如果开启,则写入table数据时会启动分桶。所以必须要将该属性的值设置为true。

set hive.enforce.bucketing=true;
insert overwrite table sogou_bucket select uid,keyword from sogou_500w limit 10000;

分桶表相对于分区表来说的,分桶表在物理结构上一个桶对应一个文件,而分区表一个分区对应一个目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive操作命令上手手册 的相关文章

  • 如何在 hive 中创建一个空的结构数组?

    我有一个观点Hive 1 1 0 根据条件 它应该返回一个空数组或一个数组struct
  • Hadoop setInputPathFilter错误

    我正在使用 Hadoop 0 20 2 无法更改 并且我想向我的输入路径添加一个过滤器 数据如下 path1 test a1 path1 test a2 path1 train a1 path1 train a2 我只想处理所有文件trai
  • 如何使用新的 Hadoop API 来使用 MultipleTextOutputFormat?

    我想编写多个输出文件 如何使用 Job 而不是 JobConf 来执行此操作 创建基于密钥的输出文件名的简单方法 input data type key value cupertino apple sunnyvale banana cupe
  • Sqoop Import --password-file 功能在 sqoop 1.4.4 中无法正常工作

    我使用的是hadoop 1 2 1 sqoop版本是1 4 4 我正在尝试运行以下查询 sqoop import connect jdbc mysql IP 3306 database name table clients target d
  • Curl下载到HDFS

    我有这个代码 curl o fileName csv url xargs hdfs dfs moveFromLocal 1 somePath 当我执行此代码时 curl 将请求中的值放入 fileName csv 中 该文件将移动到 HDF
  • Hive 中字符串数据类型是否有最大大小?

    谷歌了很多 但没有在任何地方找到它 或者这是否意味着只要允许集群 Hive 就可以支持任意大字符串数据类型 如果是这样 我在哪里可以找到我的集群可以支持的最大字符串数据类型大小 提前致谢 Hive 列表的当前文档STRING作为有效的数据类
  • Hive中group by后是否可以连接字符串字段

    我正在评估 Hive 需要在 group by 之后进行一些字符串字段连接 我找到了一个名为 concat ws 的函数 但看起来我必须显式列出所有要连接的值 我想知道是否可以在 Hive 中使用 concat ws 做这样的事情 这是一个
  • AWS Athena 扁平化来自嵌套 JSON 源的数据

    我想从 Athena 中的嵌套 JSON 创建一个表 描述的解决方案here http docs aws amazon com athena latest ug json html使用 hive Openx JsonSerDe 等工具尝试在
  • 如果 HBase 不是运行在分布式环境中,它还有意义吗?

    我正在构建数据索引 这将需要以形式存储大量三元组 document term weight 我将存储多达几百万个这样的行 目前我正在 MySQL 中将其作为一个简单的表来执行 我将文档和术语标识符存储为字符串值 而不是其他表的外键 我正在重
  • hive查询无法通过jdbc生成结果集

    我是 Hive 和 Hadoop 的新手 在我的教程中 我想将表创建为 import java sql SQLException import java sql Connection import java sql ResultSet im
  • Oozie SSH 操作

    Oozie SSH 操作问题 Issue 我们正在尝试在集群的特定主机上运行一些命令 我们为此选择了 SSH Action 我们面对这个 SSH 问题已经有一段时间了 这里真正的问题可能是什么 请指出解决方案 logs AUTH FAILE
  • 获取 emr-ddb-hadoop.jar 将 DynamoDB 与 EMR Spark 连接

    我有一个 DynamoDB 表 需要将其连接到 EMR Spark SQL 才能对该表运行查询 我获得了带有发行标签 emr 4 6 0 和 Spark 1 6 1 的 EMR Spark Cluster 我指的是文档 使用 Spark 分
  • 将日期字符串转换为“MM/DD/YY”格式

    我刚刚看到这个例子 我该如何解决这个问题 Hive 元存储包含一个名为 Problem1 的数据库 其中包含一个名为 customer 的表 customer 表包含 9000 万条客户记录 90 000 000 每条记录都有一个生日字段
  • hive创建表的多个转义字符

    我正在尝试将带有管道分隔符的 csv 加载到配置单元外部表 数据值包含单引号 双引号 括号等 使用 Open CSV 版本 2 3 测试文件 csv id name phone 1 Rahul 123 2 Kumar s 456 3 Nee
  • 如何将Hive数据表迁移到MySql?

    我想知道如何将日期从 Hive 转移到 MySQL 我看过有关如何将 Hive 数据移动到 Amazon DynamoDB 的示例 但没有看到有关如何将 Hive 数据移动到 MySQL 等 RDBMS 的示例 这是我在 DynamoDB
  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • 在 Amazon EMR 上使用 java 中的 hbase 时遇到问题

    因此 我尝试使用作为 MapReduce 步骤启动的自定义 jar 来查询 Amazon ec2 上的 hbase 集群 我的 jar 在地图函数内 我这样调用 Hbase public void map Text key BytesWri
  • 如何通过sparkSession向worker提交多个jar?

    我使用的是火花2 2 0 下面是我在 Spark 上使用的 java 代码片段 SparkSession spark SparkSession builder appName MySQL Connection master spark ip
  • 在 Hive 中获取数据的交集

    我在配置单元中有以下数据 userid cityid 1 15 2 15 1 7 3 15 2 8 3 9 3 7 我只想保留具有 cityid 15 和 cityid 7 的用户 ID 在我的示例中 它将是用户 ID 1 和 3 我试过
  • 当从 HDFS 手动删除分区数据时,如何更新 Hive 中的分区元数据

    自动更新Hive分区表元数据的方法是什么 如果新的分区数据被添加到HDFS 不执行alter table添加分区命令 然后我们可以通过执行命令 msck Repair 来同步元数据 如果从HDFS中删除了大量分区数据 没有执行alter t

随机推荐

  • 第九章2 面向对象的程序设计

    类的深拷贝和浅拷贝 p122 变量的赋值 只是形成两个变量 实际上还是指向同一个对象 浅拷贝 会产生一个新对象 拷贝时 对象包含的子对象内容不拷贝 因此 源对象与拷贝对象会引用同一个子对象 深拷贝 使用copy模块的deepcopy函数 递
  • 闲聊篇-求职的点点滴滴~~

    引言 求职之旅是一段充满挑战与机遇的旅程 它不仅仅是寻找工作的过程 更是一个自我探索和成长的过程 在这篇文章中 我们将探讨求职的各个方面 从准备简历到面试 再到最终拿到心仪的offer 1 简历 你的敲门砖 精心制作简历 简历是求职的第一步
  • 番外篇-Julius AI帮你做数据分析

    今天咱们聊聊如何利用AI大模型来做数据分析 非常适合小白体验 尤其是缺乏项目经验的同学 强烈建议关注收藏 也欢迎私信交流 1 站在巨人肩膀 在数据分析领域 AI技术的飞速发展正引领一场革命 随着大型机器学习模型的不断完善 数据分析变得前所未
  • 1.常用单词学习

    1 1 听力练习 第一课 Av264771740 P1 Av736460000 P1 哔哩哔哩 bilibili 有推荐的吗 这个和这个都很推荐 这个多少钱 请给我这个 全部 这些一共多少钱 卫生间在哪呢 一度 願 麻烦再来一次 英語話 会
  • PDH光端机技术与应用:稳定可靠的数据传输解决方案

    在当今数字化 网络化日益加速的世界中 数据传输的稳定性和可靠性至关重要 PDH Plesiochronous Digital Hierarchy 准同步数字系列 光端机技术 作为早期的数字传输系统之一 虽然已被更先进的SDH Synchro
  • 作为项目经理,敏捷ACP有必要考吗?

    ACP Agile Certified Practitioner 是指敏捷项目管理人士 人事 资格认证 由美国项目管理协会 PMI 举办的敏捷项目管理专业人员 ACP 认证考试 PMI ACP 认证验证了从业人士理解 应用敏捷原则及在项目上
  • rtu水文专用(支持SL/T427-2021等大部分协议)

    SRTU200 系列是一款集数据采集与 4G NB IoT LoRa GPS 等多种通信功能于一体的 多功能遥测终端机 该设备搭配丰富的采集控制接口 提供 RS232 RS485 以太网 模拟量 输入 开关量输入 开关量输出和继电器等 产品
  • 2024年PMP中文报名全流程!一文看懂

    PMP 考试 作为全球公认的项目管理专业认证 每年都吸引着大量考生参与 然而 PMP 考试报名并非随时可以进行 考生需在特定的时间内进行报名 2024年PMP 考试时间安排在3月 6月 8月 11月 免费送备考资料 联系我们 经PMI 和中
  • Nexus NXOS的一些小特性

    同一行执行多条命令 使用分号 分隔 eg interface ethernet 1 1 no shutdown ip address 10 248 1 1 255 255 255 0 description To CoreSW
  • 如何在CentOS安装SQL Server数据库并通过内网穿透工具实现公网访问

    文章目录 前言 1 安装sql server 2 局域网测试连接 3 安装cpolar内网穿透 4 将sqlserver映射到公网 5 公网远程连接 6 固定连接公网地址 7 使用固定公网地址连接 前言 简单几步实现在Linux cento
  • Exception sending a multicast message:Network is unreachable故障

    出现这个故障就是没有连接到网络 如果虚拟机没有连接到本机 那么就会出现这个情况 当虚拟机连接到本机就会自动消失 同时如果是用电脑直接安装Ubuntu运行也会出现这个情况 应该是要连接到一个路由器里面这个情况才会消失
  • 阿里云2核4G服务器优惠价格30元3个月?小心坑

    2024年阿里云2核4G服务器优惠价格30元3个月 活动 https t aliyun com U bLynLC 配置为云服务器ECS经济型e实例ecs e c1m2 large 3M固定带宽 系统盘为40GB ESSD Entry 活动打
  • ps导出图像自动修改dpi问题的处理

    问题 今天修改一个图片 一切都准备就绪后 只要一导出图片 像素不变 但dpi立刻就变成了96dpi 无论怎么修改就是这个值 但我的原值是300dpi 差的不是一点半点 最后在网友的帮助下解决 而且非常简单 解决办法 方法很是简单 就是不要使
  • Nexus5596交换机支持3层需要的子卡

    3层子卡 nexus5596如果没有这块子卡 无法支持3层特性 TEST Cisco N5596 1 show modu Mod Ports Module Type Model Status 1 48 O2 32X10GBase T 16X
  • 消耗服务器带宽的因素有哪些

    消耗 服务器 带宽的因素有 1 网站布局更改使网站页面大小增加 用户获取数据时会加大带宽的消耗 2 网站访客增加使浏览页面数据增加 从而加大对带宽的消耗 3 网页数量增加导致服务器带宽消耗加快 4 突然引起流量峰值 导致带宽使用量增加 5
  • 服务器OS是什么意思?

    一 什么是服务器操作系统 服务器不仅仅是由高性能硬件组成 并且是要求客户端操作系统 如Windows和Mac OS 服务器还需要一个称为服务器操作系统的操作系统 二 与客户端OS的区别 无论是Windows还是Mac OS 家庭或办公室使用
  • 龙芯+RT-Thread+LVGL实战笔记(28)——电子琴准备工作

    写在前面 临近期末 笔者工作繁忙 因此本系列教程的更新频率有所放缓 还望订阅本专栏的朋友理解 请勿催更 笔者在此也简要声明几点 有些硬件模块笔者并没有 如LED点阵 压力传感模块 RFID模块等 因此这些模块的相关任务暂时无法给出经过验证的
  • 平衡合规与发展天平, 激发数据要素价值

    数字经济大潮汹涌 为了应对复杂的外部环境 培育企业内生竞争力 企业需要摆脱贪大求快的增长模式 转向依靠合规与发展的双轮驱动 数字经济的核心在于数据 重视数据作为生产要素的战略意义 积极建设数据要素流通交易制度是近年来数字经济发展的重要议题之
  • 分辨公网IP和内网IP的方法

    公网IP一般就是对外的访问地址 内网IP就是对内的访问地址 两者的使用范围是不一样的 那如果区分客户网络的IP地址是公网IP地址还是内网IP地址呢 公网IP的地址范围是很广泛的 我们可以先了解下内网IP 因为内网IP的地址段相对是局限的 一
  • Hive操作命令上手手册

    内容来自于 大数据Hive离线计算开发实战 Hive原理 Hive是一个基于Hadoop的数据仓库和分析系统 用于管理和查询大型数据集 以下是Hive的原理 数据仓库 Hive将结构化的数据文件映射成一张表 并提供类SQL查询功能 用户可以