$hive -help
Usage: hive [--config confdir] [-hiveconf x=y]* [-i <init-filename>]*[<-f filename>|<-e query-string>] [-S]
-u username
-p [password]
-i <filename> init Sql file
-e 'quoted query string' Sql from command line
-f <filename> Sql from files
-S Silent mode in interactive shell
-e and -f cannot be specified together. In the absence of these
options, interactive shell is started
-f 可以把命令写在文件里
-S 只输出最终结果
官方文档内容
建表
可以整表注释也可对单字段注释。partition为分区,并不属于数据部分,决定了存储目录结构。cluster为了优化性能,预先排列,方便快速查询。ASCII 001(ctrl-A) 默认字段分隔,换行为默认行分隔。
CREATE TABLE page_view(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
friends ARRAY<BIGINT>, properties MAP<STRING, STRING>
ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
PARTITIONED BY(dt STRING, country STRING)
CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '1'
COLLECTION ITEMS TERMINATED BY '2'
MAP KEYS TERMINATED BY '3'
STORED AS SEQUENCEFILE;
查看表和分区信息
加extended可以查看详细信息,里面有location:hdfs://可以看到文件存储路径
SHOW TABLES;
SHOW TABLES 'page.*';
SHOW PARTITIONS page_view;
DESCRIBE page_view;
DESCRIBE EXTENDED page_view;
DESCRIBE EXTENDED page_view PARTITION (ds='2008-08-08');
将文件中数据导入hive表
当文件中数据和表结构不一样时,先按文件格式建表,将文件put到表的路径下。
用select语句选出所需信息,插入到最终表。External关键字表示和文件独立。把表drop掉数据文件还在。
CREATE EXTERNAL TABLE page_view_stg(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User',
country STRING COMMENT 'country of origination')
COMMENT 'This is the staging page view table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '44' LINES TERMINATED BY '12'
STORED AS TEXTFILE
LOCATION '/user/data/staging/page_view';
hadoop dfs -put /tmp/pv_2008-06-08.txt /user/data/staging/page_view
FROM page_view_stg pvs
INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country='US')
SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip
WHERE pvs.country = 'US';
当文件格式和表格式一致,直接导入。
本地路径形式,加local关键字
LOAD DATA LOCAL INPATH {{/tmp/pv_2008-06-08_us.txt}} INTO TABLE page_view PARTITION(date='2008-06-08', country='US')
分布式集群路径
LOAD DATA INPATH '/user/data/pv_2008-06-08_us.txt' INTO TABLE page_view PARTITION(date='2008-06-08', country='US')
Join操作
tb1 数据
id province
1 neimenggu
2 zhejiang
3 jiangsu
4 shandong
5 sichuan
tb2 数据
id capital
2 hangzhou
3 nanjing
4 jinan
5 chengdu
6 kunming
select a.id,a.capital,b.province from tb1 a left outer join tb2 b on (a.id = b.id);
1 neimenggu NULL
2 zhejiang hangzhou
3 jiangsu nanjing
4 shandong jinan
5 sichuan chengdu
select a.id,a.capital,b.province from tb1 a right outer join tb2 b on (a.id = b.id);
2 zhejiang hangzhou
3 jiangsu nanjing
4 shandong jinan
5 sichuan chengdu
NULL NULL kunming
select a.id,a.capital,b.province from tb1 a full outer join tb2 b on (a.id = b.id);
1 neimenggu NULL
2 zhejiang hangzhou
3 jiangsu nanjing
4 shandong jinan
5 sichuan chengdu
NULL NULL kunming
select a.id,a.capital,b.province from tb1 a join tb2 b on (a.id = b.id);
2 zhejiang hangzhou
3 jiangsu nanjing
4 shandong jinan
5 sichuan chengdu
select a.id,a.capital from tb1 a left semi join tb2 b on (a.id = b.id);
2 zhejiang
3 jiangsu
4 shandong
5 sichuan
总结:left outer join 左侧所有会出现 right outer join 右侧所有会出现
full outer join 两侧所有会出现 join 两侧共有的会出现
left semi join 在右侧出现过的,但只能select左侧属性,上述两侧属性均可select
分享到:
相关推荐
### Hive基础知识总结 #### 一、Hive服务 Hive是一个建立在Hadoop之上的数据仓库工具,主要用于处理大量结构化数据集。它提供了类似SQL的查询语言(HiveQL)来简化数据处理任务。Hive的核心服务主要包括CLI、...
HIVE基础入门资料,主要目录包含Hive概述、HIve SQL基础、常见问题及规范 和HIVE SQL优化。 1、适合学习对象: 数据仓库IT人员 数据分析人员 对Hive及分布式系统有一定基础的学员 2、课程目标: 希望授课对象...
1. 创建表(CREATE TABLE): - 创建一张新表,可以是内部表或外部表。 - 使用外部表(EXTERNAL)时,可以指定数据的HDFS存储路径。 - 使用LIKE语句可以复制现有表结构而不包括数据。 - 可以通过COMMENT语句为表...
### 一、Hive基础 1. **架构**:Hive由元数据存储、驱动器、编译器和执行器等部分组成。元数据存储了表的结构、分区等信息,驱动器解析SQL语句,编译器将其转化为MapReduce任务,执行器负责运行这些任务。 2. **表...
Hive简介,包括Hive的来源,系统的架构 Hive基础语法,包括 Hive各种函数 Hive编程,导入、导出、建表、分区、自定义函数
Hive基础知识包括了Hive的基本概念、环境搭建、以及基本使用等方面的知识。下面我会根据文件提供的内容详细解释这些知识点。 首先,Hive简介部分提到了Hive是什么,为什么需要使用Hive以及Hive的主要特点。Hive是...
二、Hive基础 1. **Hive架构**:Hive的核心组件包括Hive客户端、MetaStore、HQL解析器、编译器、优化器、执行器等。MetaStore负责存储元数据,HQL(Hive Query Language)则提供了一种类似SQL的查询语言,简化了对...
在大数据处理领域,Hive是一个非常重要的工具,它提供了一个基于Hadoop的数据仓库基础设施,用于数据查询、分析和管理大规模数据集。本教程将详细讲解如何在Linux环境下安装Hive客户端,以便进行数据操作和分析。 ...
hive入门
【大数据技术基础实验报告-Hive安装配置与应用】 在大数据处理领域,Apache Hive是一个非常重要的组件,它提供了基于Hadoop的数据仓库工具,用于数据查询、分析以及存储。本实验报告将详细阐述如何安装、配置Hive,...
Hive基础,详解介绍HIVESQL中的语法
hive基础文档入门,安装配置创建删除表。hive.创建删除
在大数据处理领域,Apache Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query ...通过这个实例,你现在已经具备了使用Hive JDBC的基础知识,可以进一步探索更高级的Hive和Java集成技术。
Hive入门基础知识.pdf
HVIE 基础入门培训,深入浅出讲解了HIVE搭建,自定义函数等等开发方案
(1)HiveSQL基础SQL练习50题 (2)HiveSQL业务强化练习30题 (3)Hive进阶六大场景题目分析 1)求单月访问次数和总访问次数 2)HiveSQL影评分析案例 3)学生课程成绩 4)求每一年最大气温的那一天+温度 5)求学生...
总之,"hive相关jar包"是实现与Hive数据仓库交互的基础,它们包含了执行Hive查询、管理元数据和执行计算任务所需的所有组件。通过正确配置和使用这些jar包,开发者可以在Java应用程序、脚本或者Web服务中轻松地集成...
以下是对Hive基础知识的详细阐述: 1. **Hive架构**: Hive的核心组件包括:Hive Metastore、Driver、Compiler、Executor和HDFS。Metastore存储元数据,如表结构、分区信息等;Driver接收查询,编译HQL为执行计划...