`
yugouai
  • 浏览: 492386 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
Hive自定义generic(通用)函数,性能比simple性能高,同时能处理simple不能处理的问题,如:simple不能处理Hive的struct结构。   hive generic 函数详细见hive 目录: src\ql\src\java\org\apache\hadoop\hive\ql\udf\generic     一、GenericUDF 1.UDF首先将输入数据转化为对应的ObjectInspectors对象   2.Hive自带的很多函数都是使用GenericUDF,例如:concat_ws, case when等等   3.UDF输入是单行数据, ...
Hive可以自定义函数,自定义函数分为两种,一种是simple,simple是通过java反射机制,所以效率上有一定的折扣,对性能有一定的损耗。另一种是generic,generic使用分布式JAVA API,类似于Hadoop的一套API   一、分类   UDF(普通):操作作用于单个数据行,产生一个数据行作为输出。(数学函数,字符串函数)   UDAF(用户定义聚集函数):接收多个输入数据行,并产生一个输出数据行。(count,max)   UDTF(用户定义表生成函数):操作作用于单个数据行,并产生多个数据行----一个表作为输出   二、添加函数到hive库 ...
Hive 并发模型 使用案例 并发支持 (http://issues.apache.org/jira/browse/HIVE-1293) 是数据库的必须,而且他们的使用案例很好懂。至少,我们要尽可能支持并发读和写。添加几个发现当前已经锁定的锁,是有用的。这里没有一个直接的需求 ...

HIVE Explain

EXPLAIN语法 Hive提供EXPLAIN命令,显示查询的执行计划。语法如下: EXPLAIN [EXTENDED] query   EXPLAIN语句使用EXTENDED,提供执行计划关于操作的额外的信息。这是典型的物理信息,如文件名。   Hive查询被转换成序列(这是一个有向 ...

HIVE lateral view

Lateral View语法 lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)* fromClause: FROM baseTable (lateralView)* 描述 lateral view用于和split, explode等UDTF一起使用,它能够将一行数据拆成多行数据,在此基础上可以对拆分后 ...
 order by order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。 set hive.mapred.mode=nonstrict; (default value / 默认值) set hive.mapred.mode=strict; ...

Hive的JOIN用法

Hive表连接的语法支持如下: join_table: table_reference JOIN table_factor [join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference LEFT SEMI JOIN table_reference join_condition | table_reference CROSS JOIN table_refe ...
原生类型 原生类型包括TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY (Hive 0.8.0以上才可用),TIMESTAMP (Hive 0.8.0以上才可用),这些数据加载很容易,只要设置好列分隔符,按照列分隔符输出到文件就可以了。 假设有这么一张用户登陆表 CREATE TABLE login ( uid BIGINT, ip STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; ...
下文只描述不常见的Hive创建|删除|截断表的用法 指定数据库创建表 如果不指定数据库,hive会把表创建在default数据库下,假设有一个hive的数据库mydb,要创建表到mydb,如下: CREATE TABLE mydb.pokes(foo INT,bar STRING); 或者是 use mydb; - ...

Hive数据类型

列类型   Hive支持的数据类型如下:   原生数据类型: TINYINT SMALLINT INT BIGINT BOOLEAN FLOAT DOUBLE STRING BINARY(好像是较高版本才有的类型) TIMESTAMP 复合类型: arrays:ARRAY<data_type> maps:MAP<primitive_type,data_type> structs:STRUCT<col_name : data_type> union:UNIONTYPE<data_type,data_type,. ...
前言 使用hive,我们很多情况下会并发调用hive程序,将sql任务转换成mapreuce提交到hadoop集群中,而在本人使用hive的过程中,发现并发调用hive有几个问题,在这个和大家分享下. 正文 默认安装hive,hive是使用derby内存数据库保存hive的元数据,这样是不可以并发调用hive的,需要配置为使用mysql保存hive的元数据。   运行hive,可以有以下访问方式: 1.hiveserver:hive以thrift服务的服务器形式运行,允许不同的语言编写客户端进行访问, 通过thrift,jdbc,odbc连接器和hive服务器与hive通信, ...
hive命令行 执行一个查询 $HIVE_HOME/bin/hive -e 'select a.col from tab1 a' 之后过程中,会在终端上显示mapreduce的进度,执行完毕后,最后把查询结果输出到终端上,接着hive进程退出,不会进入交互模式。   使用静音模式执行一个查询 $HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a' 加入-S,终端上的输出不会有mapreduce的进度,执行完毕,只会把查询结果输出到终端上。这个静音模式很实用,,通过第三方程序调用,第三方程序通过hive的标准输出获 ...
     表或者字段有中文的时候需要修改hive的元数据库的设置。     以mysql为例子,当mysql的字符集设置成utf8的时候使用hive会有问题,详细见hive的wiki。 所以当hive使用mysql作为元数据库的时候mysql的字符集要设置成latin1。    为了保存那些utf8的中文,要将mysql中存储注释的那几个字段的字符集单独修改为utf8。    修改字段注释字符集 alter table COLUMNS modify column COMMENT varchar(256) character set utf8;       修改表注释字符集 ...

Map根据Value排序

    博客分类:
  • java
Map的特性      Map是Key-Value的架构集合体,而Key属于Set的架构,也就是说Key值是唯一的,而Value值是可以重复;一般常用的Map结构是HashMap与TreeMap,其中TreeMap是Key有序的,如果需要Key有序则选择使用TreeMap,一般来说,考虑效率问题,则使用HashMap。   import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util ...
          在集合或者数组中,有时候需要对里面的元素,也就是对象进行排序,依照对象的某个或者某几个属性从大到小或者从小到大进行排序,我们可以采用直接编码的方式,将集合或者数组中的元素进行重新排列,但,采用java本身提供的接口,无疑是一种更有效的方法。       java提供两种方式来提供比较功能。通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。   一、Comparator       强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays ...
Global site tag (gtag.js) - Google Analytics