hive

1.下载序列化包

2.添加json序列化包 

add jar /Users/zhanxf/hadoop/hive/lib/json-serde-1.3.8-jar-with-dependencies.jar;

add jar /Users/zhanxf/hadoop/hive/lib/json-udf-1.3.8-jar-with-dependencies.jar;

3.建立hive表

DROP TABLE IF EXISTS item;

CREATE TABLE item

(

itemid STRING,

rating_normal INT,

offer_count INT,

rating_star FLOAT,

image STRING,

item_status STRING,

pop INT,

rating_bad INT,

promo_source INT,

model_discount INT,

mtime BIGINT,

price_before_discount INT,

rcount_with_context INT,

shopid STRING,

discount STRING,

touch_time BIGINT,

can_use_wholesale BOOLEAN,

sold INT,

show_discount INT,

sub_catid INT,

ctime BIGINT,

price_min_sp STRING,

distance INT,

name STRING,

attr_status STRING,

currency STRING,

country STRING,

liked BOOLEAN,

campaignid STRING,

show_official_shop_label_in_normal_position BOOLEAN,

flag INT,

stockout_time BIGINT,

third_catid INT,

is_pre_order BOOLEAN,

show_free_shipping BOOLEAN,

seller_promotionid BIGINT,

show_shopee_verified_label INT,

ads_keyword STRING

)

ROW FORMAT SERDE ‘org.openx.data.jsonserde.JsonSerDe'

STORED AS TEXTFILE;

LOAD DATA LOCAL INPATH "/Users/zhanxf/hadoop/test/item" OVERWRITE INTO TABLE item;

create table score(name string, score map)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t'

COLLECTION ITEMS TERMINATED BY ','

MAP KEYS TERMINATED BY ':’;

PARTITIONED BY (country STRING, state STRING);

CREATE TABLE item3

(

itemid STRING,

rating_normal INT,

rating_count array,

models array>

)

ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'

STORED AS TEXTFILE;

结构体查询:select models[0].sku from item3;

复杂数据类型

ARRAY:

ARRAY类型是由一系列相同数据类型的元素组成,这些元素可以通过下标来访问。

MAP:

我们可以通过userlist['username']来得到这个用户对应的password;

STRUCT:

STRUCT可以包含不同数据类型的元素。这些元素可以通过”点语法”的方式来得到所需要的元素

UNION:

UNIONTYPE,他是从Hive 0.7.0开始支持的

基本数据类型

TINYINT    1byte,-128 ~ 127

SMALLINT    2byte,-32,768 ~ 32,767

INT    4byte,-2,147,483,648 ~ 2,147,483,647

BIGINT    8byte,-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

BOOLEAN

FLOAT    4byte单精度

DOUBLE    8byte双精度

STRING

BINARY         从Hive0.8.0开始支持

TIMESTAMP         从Hive0.8.0开始支持

DECIMAL         从Hive0.11.0开始支持

CHAR         从Hive0.13.0开始支持

VARCHAR         从Hive0.12.0开始支持

DATE         从Hive0.12.0开始支持

文件存储格式

RCFILE

行列存储相结合的方式。一行的文件在同一块上,避免跨块读取。块上数据按列存储,便于压缩和快速的列存取。

SEQUENCEFILE

SequenceFile是一种二进制文件,其具有使用方便、可分割、可压缩的特点。

压缩选择:NONE, RECORD, BLOCK。 Record压缩率低,一般建议使用BLOCK压缩。

配置项:hive.exec.compress.output=true

io.seqfile.compression.type=BLOCK

TEXTFILE

默认格式,数据不做压缩,磁盘开销大,数据解析开销大,但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作

自定义格式

用可以通过实现inputformat和outputformat来自定义输入输出格式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Hive基本介绍和基础: Facebook公司最早完成并开源了hive框架,可以将sql语句直接翻译成Map...
    奉先阅读 8,605评论 0 43
  • 实验目的 理解Hive在Hadoop体系结构中的角色。 熟悉Hive的DDL命令与DML操作。 区分数据仓库和数据...
    Tiny_16阅读 10,084评论 7 14
  • 第一部分 什么是Hive: Hive是基于Hadoop之上的数据仓库,数据存放在HDFS上,它同样可以通过ETL来...
    wangmin阅读 6,091评论 0 12
  • P1一天之际在于晨,早晨不只是上班族起这么早,还有的是每天把自己新鲜的蔬菜水果拿到集市上来卖的小摊贩们,他们的菜价...
    南瓜小姐的日常阅读 5,022评论 0 11
  • 今天是六一儿童节后的第一天,原本六一儿童节,我们学校组织活动要去玩皮划艇,可是天空不做美,下大暴雨,所以只有明天去...
    神了天阅读 3,770评论 13 7