hive
文章平均质量分 72
昵称诚诚
stay hungry, stay foolish
展开
-
利用inner join核对两张表的数据
1、inner join 浅尝提到比对两张表的数据是否完全相同,很容易想到用inner join关联两张表去比较。Inner join的基本语法是:select collist from t1 inner join t2 on condition1 and condition2…;简单理解就是对于t1表中的每一行,将它与t2表的每一行进行比较,检查他们是否满足关联条件,当满足关联条件时,inner join 将返回由t1和t2表中的列组成的新行,当无法满足关联条件时,将返回一个空结果。下面举个例子:转载 2021-10-29 16:08:59 · 3068 阅读 · 0 评论 -
Hive SQL底层执行过程详细剖析
看到一篇干货,copy一下本文结构采用宏观着眼,微观入手,从整体到细节的方式剖析 Hive SQL 底层原理。第一节先介绍 Hive 底层的整体执行流程,然后第二节介绍执行流程中的 SQL 编译成 MapReduce 的过程,第三节剖析 SQL 编译成 MapReduce 的具体实现原理。**Hive**Hive是什么?Hive 是数据仓库工具,再具体点就是一个 SQL 解析引擎,因为它即不负责存储数据,也不负责计算数据,只负责解析 SQL,记录元数据。Hive直接访问存储在 HDFS 中转载 2021-06-18 16:24:33 · 614 阅读 · 0 评论 -
Hive 动态分区
hive可以通过分区缩小数据集,避免全表扫描,提高查询速度和性能的。Hive的分区主要有两种:静态分区和 动态分区Hive静态分区Hive的静态分区,实际上就是手动指定分区的值为静态值,这种对于小批量的分区插入比较友好。在插入语句中如果partition字段指定了具体的值 ,例如:partition(year=“2020”)这样的分区就叫静态分区了,是不是很简单?Hive动态分区Hive的动态分区,其实就是把静态分区中的分区值设置为动态的值insert overwri...原创 2021-04-07 18:02:34 · 2299 阅读 · 0 评论 -
json日志文件通过spark转存成parquet方案
收集的业务数据为json格式,准备利用parquet 格式重新存储到hive表,以节约空间并方便后续通过spark 或 hive 进行分析查询。 (示例代码是用python) 具体步骤是: 1. 用spark读取json数据后,得到一个dataframepath = '/xx/xxx/xxx.json'df = sqlContext.read.json(path)2. dataframe 经原创 2017-08-15 16:01:37 · 5136 阅读 · 5 评论 -
Hue 4.1 安装
先下载最新版本,http://gethue.com/hue-4-1-is-out/ 解压,进入目录hue-4.1.0,执行 make apps这个过程中会报很多 gcc 等各咱库找不到等错误,这种是没有安装相应的类库造成的,本人centos7,用yum 更新或安装相应的库之后,就可以。编译成功之后需要更新一下配置,包括hue配置和hadoop 配置 配置 Hue的配置集中在$HUE_HO原创 2017-10-26 09:35:19 · 7163 阅读 · 1 评论 -
hive2.1.1 和 spark2.1.2
把hive-site.xml 配置copy到spark conf 配置目录下, 启动完spark2.12,用pyspark命令进入,会报 Caused by: org.apache.hadoop.hive.metastore.api.MetaException: Hive Schema version 1.2.0 does not match metastore’s schema ver原创 2017-11-07 15:23:35 · 1979 阅读 · 0 评论 -
Hive parquet 表查询报错
把数据存成parquet 格式后,建立对应的表,但是查询的时候会报下面的错误:Hive Runtime Error while processing row [Error getting row data with exception java.lang.UnsupportedOperationException: Cannot inspect org.apache.hadoop.io.LongWr原创 2017-09-12 16:23:05 · 8384 阅读 · 2 评论 -
Hive 用ROW_NUMBER取每组top n
今天用hive查数据时需要取每个分组的第一条数据,查了一发现hive 已经从0.11.0版本加入row_number函数,可以满足查询的需求。ROW_NUMBER() 是从1开始,按照顺序,生成分组内记录的序列 用法如下: ROW_NUMBER() OVER (partition BY COLUMN_A SORT BY COLUMN_B ASC/DESC) rnrn 是排序的别名执行时每原创 2017-04-26 19:05:59 · 13098 阅读 · 0 评论 -
Hive1.1.0 安装
一、 hive下载: http://hive.apache.org/downloads.html 解压 apache-hive-1.1.0-bin.tar.gz 到你想要的目录下tar xzf hadoop.2.6.0.tar.gz二、配置 1. 设置环境变量,可以配置在/etc/profile文件中。export HIVE_HOME=/home/hadoop/apache-hive-1.1.原创 2015-05-06 17:49:53 · 3411 阅读 · 0 评论 -
Hive array字段 查询过滤
如果一个hive 表的一个字段 A 是array类型,里面存在多个值,如果要对其中的某个值进行过滤,那么可以用lateral view 结合UDTF (User-Defined Table-Generating Functions) 来进行过滤Lateral View语法lateralView: LATERAL VIEW udtf(expression) tableAlias AS colu原创 2015-08-04 17:13:12 · 12713 阅读 · 0 评论 -
impala 导出查询结果到文件
想用impala-shell 命令行中将查询的结果导出到本地文件,想当然的以为impala 和 hive 一样可以用 insert overwrite local directory ‘/home/test.txt’ select ……. 这样的命令导出到本地,执行了一下,发现impala 不支持这个。然后查了一下,发现impala-shell 可以像mysql 一样的方式导出查询结果到文件。在命令原创 2017-04-01 11:23:26 · 12714 阅读 · 0 评论 -
解决hive表注释乱码
环境 cdh5.8.3 + hive 1.1.0。 hive 元数据库用的是mysql创建表后,用desc 在hive中查看表信息,注释显示乱码。解决方案如下:1 进入mysql ,执行 show create database hive 查看hive 数据库当前编码,如果是utf8 则执行下面sqlalter database hive default character set latin1原创 2017-01-06 17:30:10 · 3965 阅读 · 0 评论