hive

作者: zhan81649 | 来源:发表于2017-09-30 16:28 被阅读0次

    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来自定义输入输出格式

    相关文章

      网友评论

          本文标题:hive

          本文链接:https://www.haomeiwen.com/subject/bofnextx.html