博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive基础
阅读量:5793 次
发布时间:2019-06-18

本文共 1617 字,大约阅读时间需要 5 分钟。

hot3.png

Hive的数据存储:
    1.表:
    用于映射文本类型的数据成关系型,每个表对应一个目录,目录下存储的是存储数据的文本。
    删除表的时候数据和元数据都会被删除。
    2.外部表:
    与表类似,但是数据文件不放在自己表所属的目录中,而是放在别处,在定义表的时候用location关键字指定。
    删除表的时候,外部数据并不会被删除,只删除对应表的元数据。
    3.分区:
    相当于对数据的某一属性进行分类,每一分区对应一个文件夹。分区是针对数据文件
划分的而非数据记录,分区下还可以后子分区,以实现数据的多维度划分。
    4.桶:
    对指定的列去hash值,根据hash值切分数据,目的是为了并行,每个桶对应一个文件。
    桶可以直接建立在表下,也可以建立在分区下。
常用命令:
    创建表:
    create table [if not exists] table_name (
        field_name field_type,
    )
    PARTITIONED BY(field_name field_type)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    stored as textfile;
    导入数据:
    load data [local] inpath 'file_path' [overwrite] into table table_name [partition (xxx='xxxx')];
    
    导出数据:
    INSERT OVERWRITE [LOCAL] DIRECTORY 'file_path' select * from table_name where clause;
    查询结果导入表:
    INSERT OVERWRITE TABLE table_name select * from table_name where clause;
UDF:
    尽管hive为我们提供了大量的函数,但是使用需求是多样的,所以有时我们要自定义函数。
    自定义函数需要编写自定义类,类继承自org.apache.hadoop.hive.ql.exec.UDF
    maven依赖配置:
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>0.14.0</version>
        </dependency>
    
    定义类:
        package com.example.hive.udf;
        import org.apache.hadoop.hive.ql.exec.UDF;
        public class Function extends UDF {
            public String evaluate(String text) {
                //do something
                return "";
            } 
        }
    自定义类需要实现名为evaluate的方法,该方法可可重载,UDF只能实现一进一出的操作
    将写好的类打包程jar包,有时maven打包会出问题,可按如下手动打包:
    javac -cp class_file_path/hive-exec-0.14.0.jar Function.java
    jar -cvf Function.jar Function.class
    生成jar包后导入hive中就可以使用该函数了:
    hive> add jar /home/yourname/Function.jar;
    hive> create temporary function my_function as 'com.example.hive.udf.Function';
    使用函数:
    select my_function(name) from table_name;

转载于:https://my.oschina.net/nalenwind/blog/346843

你可能感兴趣的文章
英国安全报告 “网络军备竞赛”黑客完胜
查看>>
贵州:以智能制造获取竞争优势 用大数据写出大文章
查看>>
实例说明Java中的null
查看>>
车载手机充电误区多,一插一拔竟会损坏手机?!
查看>>
打造可控、可信、可靠、互联、可管的网络空间
查看>>
SpringJunit4 进行单元测试
查看>>
三流安防厂商业务员的出路在哪里?
查看>>
《OSPF和IS-IS详解》一1.8 总结
查看>>
Facebook 内部高效工作 PPT 指南
查看>>
《Python爬虫开发与项目实战》——1.5 网络编程
查看>>
《大数据导论》——1.3节不同数据类型
查看>>
Tomcat 全系报请求漏洞 CVE-2014-0227
查看>>
《版式设计——日本平面设计师参考手册》—第1章置入图片
查看>>
《ANSYS 14有限元分析自学手册》一2.9 本章小结
查看>>
《CCNP TSHOOT 300-135认证考试指南》——6.6节路由式端口故障检测与排除
查看>>
Bootstrap模板代码+页面自适应页面的案例代码
查看>>
《Python语言程序设计》——2.8 数值数据类型和运算符
查看>>
Foreign LINUX 让你在 Windows 运行 Linux 应用
查看>>
《编译原理实践与指导教程》——1.2 实验指导
查看>>
OpenAI 发布增强学习算法测试开源工具包
查看>>