
SQL
文章平均质量分 84
张博208
知识搬运工
展开
-
HIVE中select除了某些字段之外的剩余所有字段
HIVE中select除了某些字段之外的剩余所有字段这是HIVE中查询语句的一个小技巧,一个表字段太多,我们想要除个别字段外的剩余所有字段,全部列出来看起来难受,实际上hive语句可以解决这个问题。Hive 0.13.0之后,select列表支持正则表达式了insert overwrite table tb2 partition(dt=xx, hr=xx) select * from tb1 是不...转载 2018-07-05 20:23:30 · 5678 阅读 · 0 评论 -
Hive 删除行, 表 ,清空类容
delect:用于删除特定行条件,你可以从给定表中删除所有的行????TRUNCATE:truncate用于删除所有的行,这个行为在Hive元存储删除数据是不可逆的DROP:删除hive中的表truncate 不能删除外部表!因为外部表里的数据并不是存放在Hive Meta store中truncate:truncate table table_转载 2017-03-16 21:02:55 · 24710 阅读 · 1 评论 -
hive alter table (删除某一列, 增加列)语句
Hive alter table 语句结构:CREATE TABLE test (creatingTs BIGINT,a STRING,b BIGINT,c STRING,d STRING,e BIGINT,f BIGINT);如果需要删除 column f 列,可以使用以下语句:ALTER TABLE test转载 2017-03-16 20:51:12 · 48596 阅读 · 5 评论 -
OVER(PARTITION BY)函数用法
OVER(PARTITION BY)函数介绍开窗函数 Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:1:over后的写法:转载 2017-02-22 14:33:14 · 1354 阅读 · 0 评论 -
Hive常用的SQL命令操作
创建表Hive> CREATE TABLE pokes (foo INT, bar STRING); 创建表并创建索引字段dshive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING); 显示所有表hive> SHOW TABLES;按正条件(正则表达式)显示转载 2017-03-16 20:09:18 · 421 阅读 · 0 评论 -
Hive修改表语句
本章将介绍如何修改表的属性,如,修改表名,修改列名,添加列,并删除或替换列。Alter Table 语句它是在Hive中用来修改的表。语法声明接受任意属性,我们希望在一个表中修改以下语法。ALTER TABLE name RENAME TO new_nameALTER TABLE name ADD COLUMNS (col_spec[, col_spec ..转载 2017-03-16 19:45:25 · 321 阅读 · 0 评论 -
Hive四种数据导入方式
Hive的几种常见的数据导入方式这里介绍四种:(1)、从本地文件系统中导入数据到Hive表;(2)、从HDFS上导入数据到Hive表;(3)、从别的表中查询出相应的数据并导入到Hive表中;(4)、在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中。一、从本地文件系统中导入数据到Hive表先在Hive里面创建好表,如下:转载 2017-03-16 19:40:42 · 709 阅读 · 0 评论 -
Hive的窗口函数
如果在一条Hive SQL涉及到多个窗口函数的引用方法如下:select p_mfgr, p_name, p_size,sum(p_size) over w1 as s1,sum(p_size) over w2 as s2,sum(p_size) over w3 as s3from partwindow w1 as (distribute by p_mf转载 2017-03-16 19:35:00 · 392 阅读 · 0 评论 -
hive array、map、struct使用
hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps(K-V对):访问指定域可以通过["指定域名称"]进行,例如,一个Map M包含了一个group-》gid的kv对,gid的值可以通过M['group']来获取Arrays:array中的转载 2017-03-15 21:10:51 · 626 阅读 · 0 评论 -
Hive中join, outer join, semi join区别
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。最常用的就是多表关联查询,主要讲解下join、outer join和semi join的具体使用。join是最简单的关联操作,两边关联只取交集。outer join分为left outer jo转载 2017-03-15 20:37:26 · 325 阅读 · 0 评论 -
hive中的LEFT SEMI JOIN
LEFT SEMI JOIN 是 IN/EXISTS 子查询的一种更高效的实现。Hive 当前没有实现 IN/EXISTS 子查询,所以你可以用 LEFT SEMI JOIN 重写你的子查询语句。LEFT SEMI JOIN 的限制是, JOIN 子句中右边的表只能在 ON 子句中设置过滤条件,在 WHERE 子句、SELECT 子句或其他地方过滤都不行。转载 2017-03-15 20:15:47 · 10517 阅读 · 0 评论 -
HIVE 中内连接(JOIN ON) 与 LEFT SEMI JOIN 分析
由于Hive中都是等值连接,在JOIN使用的时候,有两种写法在理论上是可以达到相同的效果的。由于HIVE中都是等值连接,在JOIN使用的时候,有两种写法在理论上是可以达到相同的效果的,但是由于实际情况的不一样,子表中数据的差异导致结果也不太一样。 写法一: select a.bucket_id, a.sear转载 2017-03-15 19:31:50 · 683 阅读 · 0 评论 -
hive 的判断条件(if、coalesce、case)
hive 的判断条件(if、coalesce、case)摘要: hive 里面没有ifnull 那么怎么办呢CONDITIONAL FUNCTIONS IN HIVEHive supports three types of conditional functions. These functions are listed below:IF( Test Condition转载 2017-03-15 18:48:33 · 4018 阅读 · 0 评论 -
利用Hive进行数据分析
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上的行业标准之一。面对当今互联网产生的巨大的TB甚至PB级原始数据,利用基于Hadoop的数据仓库解决方案Hive早已是Hadoop的热点应用之一。达观数据团队长期致力于研究和积累Hadoop系统的技术和经验,并构建转载 2017-03-15 18:44:25 · 3111 阅读 · 0 评论 -
Hive之分区(Partitions)和桶(Buckets)
hive引入partition和bucket的概念,中文翻译分别为分区和桶(我觉的不是很合适,但是网上基本都是这么翻译,暂时用这个吧),这两个概念都是把数据划分成块,分区是粗粒度的划分桶是细粒度的划分,这样做为了可以让查询发生在小范围的数据上以提高效率。首先介绍分区的概念,还是先来个例子看下如果创建分区表:[code lang=”sql”]create table logs_par转载 2017-03-15 17:23:30 · 587 阅读 · 0 评论 -
Hive中order by,sort by,distribute by,cluster by的区别
一:order byorder by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间。关于order by的详细介绍请参考这篇文章:Hive Order by操作。二:sort bysort by不是全局排序,其在数据进入reducer前完成排序,因此,如果用sort转载 2017-03-16 21:07:07 · 366 阅读 · 0 评论 -
Hive查询进阶
通过Hive提供的order by子句可以让最终的输出结果整体有序。但是因为Hive是基于Hadoop之上的,要生成这种整体有序的结果,就必须强迫Hadoop只利用一个Reduce来完成处理。这种方式的副作用就是回降低效率。如果你不需要最终结果整体有序,你就可以使用sort by子句来进行排序。这种排序操作只保证每个Reduce的输出是有序的。如果你希望某些特定行被同一个Reduce处理,转载 2017-03-16 21:09:10 · 251 阅读 · 0 评论 -
HiveQL与SQL区别
1.hive内联支持什么格式?2.分号字符注意什么问题?3.hive中empty是否为null?4.hive是否支持插入现有表或则分区中?5.hive是否支持INSERT INTO 表 values()?1、Hive不支持等值连接 •SQL中对两表内联可以写成:•select * from dual a,dual b where a.key = b.key;转载 2017-03-16 22:27:24 · 1543 阅读 · 0 评论 -
Hive分析 函数 GROUPING SETS,CUBE,ROLLUP
GROUPING SETS,GROUPING__ID,CUBE,ROLLUP这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计,比如,分小时、天、月的UV数。Hive版本为 apache-hive-0.13.1数据准备:2015-03,2015-03-10,cookie12015-03,2015-03-10,cookie52015-03,2015-03-12,co...转载 2018-06-19 09:25:52 · 262 阅读 · 0 评论 -
Hive中的TRANSFORM:使用脚本完成Map/Reduce
首先来看一下数据:12345hive> select * from test;OK1 32 23 1假设,我们要输出每一列的md5值。在目前的hive中是没有这个udf的。我们看一下Python的代码:123456789101112#!/home/tops/bin/python import sysimport hashlib for line in sy...转载 2018-06-22 12:15:52 · 675 阅读 · 0 评论 -
Hive调用python脚本实现数据清洗、统计过程
本实例通过python脚本对电影数据进行清洗,帮助读者了解hive调用python脚本的整个流程。操作步骤:1、创建基表CREATE TABLE u_data ( userid INT, //用户ID movieid INT, //电影ID rating INT, //电影评分 unixtime STRING)。 //时间戳ROW FORMAT DELIMITEDF...转载 2018-06-22 12:15:01 · 2947 阅读 · 0 评论 -
HIVE External&TBLPROPERTIES(二)
HIVE External&TBLPROPERTIES(二)1.Externalhive中有两种表:外部表和内部表(managed and external)。可以通过desc formatted table_name 命令来查看表的信息,来辨别表是外部表还是内部表。 内部表的文件,元数据和统计信息等由hive进行管理,被存储在hive.metastore.warehouse.dir 目录...转载 2018-05-16 13:37:46 · 1934 阅读 · 0 评论 -
Hive SQL操作与函数自定义(二)
9 Operators and UDFs9.1 内置运算符9.1.1 关系运算符操作符运算对象的类型描述A <=> BALL都是NULL时,返回TRUE,有一为NULL时,返回FALSE,都不为NULL时,与‘=’运算符一样。A <> BALLA或B为NULL时,返回NULL,否则A不等于B是返回TRUE,反之FALSE。A RLIKE BstringsA或B为NULL时,...转载 2018-05-03 11:18:29 · 595 阅读 · 0 评论 -
Hive SQL操作与函数自定义(一)
与传统SQL一致,并且概念简单的,本文没有详细说明或完全没有说明。另外,本文也没有按照官文一字不漏地翻译,只是提炼本人认为需要的。 1 DDL1.1 Create/Drop/Alter/Use Database1.1.1 Create DatabaseCREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database...转载 2018-05-03 11:17:04 · 2101 阅读 · 0 评论 -
SQL 层次查询
语法:[Java] view plain copy print?SELECT [LEVEL],column,expr... FROM table [WHERE condition(s)] [START WITH condition(s)] [CONNECT BY PRIOR condition(s)]; 总结:1.其中le转载 2017-07-08 20:30:31 · 2421 阅读 · 0 评论 -
SQL Server一行多列求最大值
--一行多列求最大值 --创建临时表 create table #temp(id int,createdate1 varchar(17),createdate2 varchar(17),createdate3 varchar(17)); --插入数据 insert into #temp(id,createdate1,createdate2,createdate3) s转载 2017-02-15 14:27:34 · 1712 阅读 · 0 评论 -
Lateral View用法 与 Hive UDTF explode
Lateral View是Hive中提供给UDTF的conjunction,它可以解决UDTF不能添加额外的select列的问题。1. Why we need Lateral View?当我们想对hive表中某一列进行split之后,想对其转换成1 to N的模式,即一行转多列。hive不允许我们在UDTF函数之外,再添加其它select语句。如下,我们想将登录某个游戏的用户id放转载 2017-06-30 13:43:19 · 1921 阅读 · 0 评论 -
使用SQL语句从数据库一个表中随机获取数据
-- 随机获取 10 条数据SQL Server:SELECT TOP 10 * FROM T_USER ORDER BY NEWID()ORACLE:SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM MySQL:SELECT * FROM T_USER转载 2017-05-22 16:27:10 · 5401 阅读 · 0 评论 -
SQL 查询学习笔记
学习笔记原创 2016-09-24 15:01:15 · 1520 阅读 · 0 评论 -
Spark入门实战系列--6.SparkSQL(下)--Spark实战应用
【注】该系列文章以及使用到安装包/测试数据 可以在《倾情大奉送–Spark入门实战系列》获取1 运行环境说明1.1 硬软件环境主机操作系统:Windows 64位,双核4线程,主频2.2G,10G内存虚拟软件:VMware® Workstation 9.0.0 build-812388虚拟机操作系统:CentOS 64位,单核虚拟机运行环境: JDK:1.7.0_55转载 2017-04-15 19:04:21 · 826 阅读 · 1 评论 -
Spark入门实战系列--6.SparkSQL(中)--深入了解运行计划及调优
1 使用Hive-Console 了解运行计划前面介绍了SparkSQL的运行过程,罗列了很多概念很抽象,比如Unresolved LogicPlan、LogicPlan、PhysicalPlan,下面介绍一个工具hive/console,来加深对SparkSQL的运行计划的理解。 【注】以下实验环境为第二课《Spark编译与部署》搭建hadoop1一台机器1.1 运行环境说明转载 2017-04-15 18:59:21 · 547 阅读 · 0 评论 -
Spark入门实战系列--6.SparkSQL(上)--SparkSQL简介
1、SparkSQL的发展历程1.1 Hive and SharkSparkSQL的前身是Shark,给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,Hive应运而生,它是当时唯一运行在Hadoop上的SQL-on-Hadoop工具。但是MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,降低的运行效率,为了提高SQL-on-Hadoop的效率,转载 2017-04-15 18:49:06 · 426 阅读 · 0 评论 -
hive 分区(partition)简介
网上有篇关于hive的partition的使用讲解的比较好,转载了:一、背景1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。2、分区表指的是在创建表时指定的partition的分区空间。3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitio转载 2017-03-15 17:21:28 · 453 阅读 · 0 评论 -
hive内部表与外部表区别详细介绍
问题导读:1.创建内部表与外部表的区别是什么?2.external关键字的作用是什么?3.外部表与内部表的区别是什么?4.删除表的时候,内部表与外部表有什么区别?5.load data local inpath '/home/wyp/data/wyp.txt' into table wyp;的过程是什么样子的?6.磁盘,hdfs,hive表他们之间的过程是什么样子的?转载 2017-03-15 17:57:17 · 3184 阅读 · 1 评论 -
SQL Server中的Merge关键字
http://www.cnblogs.com/CareySon/archive/2012/03/07/2383690.html参看SQL Server中的Merge关键字简介 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精转载 2017-02-28 14:49:37 · 248 阅读 · 0 评论 -
窗口函数和聚合函数嵌套的问题
窗口函数是对显示出来的结果( 运算后显示在桌面)做函数加工的。不是对原来的表加工的。如下的窗口函数,是对许多数据运营到算出count(1)后再做的窗口函数。而不是原来的原始数据原创 2017-03-02 16:25:42 · 2838 阅读 · 0 评论 -
Hive 内建操作符与函数开发——深入浅出学Hive
目录:初始HiveHive安装与配置Hive 内建操作符与函数开发Hive JDBChive参数Hive 高级编程Hive QLHive Shell 基本操作hive 优化Hive体系结构Hive的原理 配套视频课程 第一部分:关系运算Hive支持的关系运算符转载 2017-03-23 11:44:53 · 680 阅读 · 0 评论 -
如何解决hive同时计算多个分位数的问题
http://blog.youkuaiyun.com/sinat_27339001/article/details/52189843众所周知,原生Hive没有计算中位数的函数(有的平台会有),只有计算分位数的函数percentile在数据量不大的时候,速度尚可。但是数据量一上来之后,完全计算不出来。那么如何解决这个问题呢,我们可以使用 row_number() over转载 2017-04-07 22:01:12 · 2165 阅读 · 1 评论 -
Hive – Distinct 的实现
准备数据语句SELECT COUNT, COUNT(DISTINCT uid) FROM logs GROUP BY COUNT;hive> SELECT * FROM logs;OKa 苹果 3a 橙子 3a 烧鸡 1b 烧鸡 3 hive> SELECT COUNT, COUNT(DISTINCT uid) FROM logs GROUP BY COUNT;转载 2017-03-21 14:03:16 · 716 阅读 · 0 评论 -
Hive SQL优化之 Count Distinct
Hive SQL优化之 Count DistinctHive是Hadoop的子项目,它提供了对数据的结构化管理和类SQL语言的查询功能。SQL的交互方式极大程度地降低了Hadoop生态环境中数据处理的门槛,用户不需要编写程序,通过SQL语句就可以对数据进行分析和处理。目前很多计算需求都可以由Hive来完成,极大程度地降低了开发成本。目前,Hive底层使用MapRed转载 2017-03-21 12:24:42 · 1407 阅读 · 0 评论