zoukankan      html  css  js  c++  java
  • Hive分桶

    1.简介

      分桶表是对列值取哈希值的方式将不同数据放到不同文件中进行存储。对于hive中每一个表,分区都可以进一步进行分桶。由列的哈希值除以桶的个数来决定数据划分到哪个桶里。

    2.适用场景

      1.数据抽样【sampling】

      2.map-join

    3.开启支持分桶

      配置;set hive.enforce.bucketing=true;

      默认值:false

      设置为true后,mapreduce运行时会根据bucket的个数自动分配reduce task个数

      注意:首次作业产生的桶【文件个数】和reduce task个数一致。

    4.加载数据  

      执行:

        insert into table bucket_table select columnd from tbl;

        insert override table bucket_table select columns from tbl;

    5.抽样

      执行:

        select * from bucket_table tablesample(bucket 1 out of 4 on columns);

      语法:TABLESAMPLE(BUCKET x OUT OF y)

      备注:y必须是table总bucket数的倍数或者因子。hive根据y的大小,决定抽样的比例。例如,table总共分了64份,当y=32时,抽取【64/32】2个bucket的数据,当y=128时,抽取【64/128】1/2个bucket的数据。x表示从哪个bucket开始抽取。例如,table总bucket数为32,tablesample(bucket 3 out of 16),表示总共抽取【32/16】2个bucket的数据,分别为第3个bucket和第【3+16】19个bucket的数据。

    6.创建分桶表

      执行:
        create table psnbucket(id INT,name STRING,age INT) clustered by (age) into 4 buckets row format delimited fields terminated by ',';

  • 相关阅读:
    用dt命令搜索查看符号
    烦人的异常
    _NT_SYMBOL_PROXY
    Windbg常用命令系列---.f+, .f- (切换Local Context)
    Windbg常用命令系列---.dumpcab (创建dump CAB文件)
    Windbg常用命令系列---.dump(创建dump文件)
    Windbg常用命令系列---!mapped_file
    Windbg常用命令系列---!cppexr
    再谈FPO
    Windbg常用命令系列---!stl
  • 原文地址:https://www.cnblogs.com/yszd/p/10726220.html
Copyright © 2011-2022 走看看