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

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

hot3.png

一、hive的定义:

  • Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的

  • Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目录/文件,达到了元数据与数据存储分离的目的

  • Hive的内容是读多写少,不支持对数据的改写和删除

  • Hive中没有定义专门的数据格式,由用户指定,需要指定三个属性:

    – 列分隔符 空格,‘,’‘\t’

    – 行分隔符‘\n’

    – 读取文件数据的方法

    • 注:如果数据中包含了‘\n’,就会出现串行的现象。

二、hive命令

  • 修改字段名字:

    ALTER TABLE 表名 CHANGE 旧字段 新字段 类型;

  • 建表语句:

  • 加载数据: LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]  

    解释: local:可选,表示从本地文件系统中加载,而非hdfs overwrite:可选,先删除原来数据,然后再加载。

    partition:这里是指将inpath中的所有数据加载到那个分区,并不会判 断待加载的数据中每一条记录属于哪个分区。

三、需要注意的函数用法

  • repexp_replace 替换,官网说用另个两个\,其实要用四个\\\\才行
  • 行转列的函数是:explode()
  • 列转行的函数是:concat_ws(',',collect_set(column)),其中
    • 1.collect_set()可以去重
    • 2.collect_list 不去重
    • 3.column的数据类型要求是string

四、用hive来个单词统计

select count(a.word) as cnt,a.wordfrom (    select    explode(split(regexp_replace(sentence,'[,\\\\"]',''),''))    as word from article) a group by wordorder by cntlimit 100;

注:函数说明

  • explode():行转列
  • split():字段切割
  • regexp_replace():替换,用于过滤特殊符号、标点符号

转载于:https://my.oschina.net/u/3746234/blog/3053878

你可能感兴趣的文章
将json返回的日期格式转换
查看>>
JAVA学习之路 不走弯路,就是捷径
查看>>
ZSTU OJ 3999 零基础学算法---邻接表
查看>>
Android JS打开原生应用
查看>>
Java数组操作的10大方法
查看>>
重构实例1:消除冗余代码
查看>>
防御式编程
查看>>
Java课堂笔记第九次428
查看>>
WCF配置文件注释
查看>>
获取SqlConnection的统计信息
查看>>
puppet cert maintain
查看>>
团队绩效评估计划
查看>>
BZOJ1486:[HNOI2009]最小圈——题解
查看>>
网络对抗 Exp0 Kali安装 Week1
查看>>
【Python第六篇】Python面向对象(进阶篇)及相关(异常处理、反射)
查看>>
Java DOM方式解析XML(模板)
查看>>
TextUtils.isEmpty() 和equals方法。
查看>>
yii2修改默认控制器和布局视图
查看>>
python 基础知识(一)
查看>>
检测应用版本
查看>>