Hive----【DML操作 、对数据表的查操作】

Hive 数据表的操作 首先是一些基础命令 ,然后会有我的练习代码供参考,也便于我的记忆整理: ***不是代码,但是这样我认为有利于一眼看到重点!!!*** DDL操作(数据定义语言)包括:Create、Alter、Show、Drop等。 (1)create database- 创建新数据库 (2)alter database - 修改数据库 (3)drop database - 删除数据库 (4)crea... 阅读详情

Hive–DML操作

1. Load

加载操作时间数据文件移动到与Hive表对应的位置的出复制/移动操作.

语法结构 :

load data [local] inpath 'filepath' [overwrite] into table tablename [partition (partcol1=val1, partcol2=val2 ...)]

**说明 : **

  • filepath :

    • 相对路径 : hivedata/1.txt
    • 绝对路径 : /user/hive/hivedata/1.txt
    • 完整URI : hdfs : //namenode:9000/user/hive/hivedata/1.txt

    指的就是要传递进来的数据的位置 , 一般我们都会选择用load方法导入数据 , 但是一定要注意overwrite属性

  • Local

    • 如果指定了Local , load命令将在hive服务所在的linux中查找文件路径 .
    • 如果没有指定local关键字 , 选择使用hdfs上的文件的路径即可.
  • overwrite

    • 如果使用overwrite关键字 , 则目标表(或分区)中的内容会被删除! 因此要慎用!

扩展 :

hive load加载数据

针对内部表而言的

  • 如果数据在hive服务器本地的linux上(local) 属于文件复制操作
load data local inpath '/root/hivedata/z.txt' into table t_z;
INFO  : Loading data to table itcast.t_z from file:/root/hivedata/z.txt
  • 如果数据在hdfs文件系统上(非local) 属于文件移动操作
load data inpath '/z.txt' into table t_z1;
INFO  : Loading data to table itcast.t_z1 from hdfs://node-1:9000/z.txt
  • 内部探秘
load data local inpath '/root/hivedata/z.txt' into table t_z;
相当于  hadoop  fs -put /root/hivedata/z.txt  /user/hive/warehouse/itcast.db/t_z
----------------------------------
load data inpath '/z.txt' into table t_z1;
相当于 hadoop fs -mv /z.txt  /user/hive/warehouse/itcast.db/t_z

local图解:

在这里插入图片描述

2. insert

Hive 中 insert 主要是结合 select 查询语句使用,将查询结果插入到表中 , 例如

insert overwrite table stu_buck select * from student cluster by(Sno);

需要保证查询结果列的数目和需要插入数据表格的列数目一致

如果查询出来的数据类型和插入表格对应的列数据类型不一致 , 将会进行转换 , 但是不能保证转换一定成功 , 转换失败的数据将会为NULL .

insert 多重插入
创建一个主表以及两个测试表
create table source_table (id int, name string) row format delimited fields terminated by ',';
create table test_insert1 (id int) row format delimited fields terminated by ',';
create table test_insert2 (name string) row format delimited fields terminated by ',';

普通插入:  分别扫描两次 
insert into table test_insert1 select id from source_table;
insert into table test_insert2 select name from source_table;

多重插入: 一次扫描 多次插入
from source_table                     
insert overwrite table test_insert1 
select id
insert overwrite table test_insert2
select name;
动态分区插入
第一步 : 首先开启动态分区功能
set hive.exec.dynamic.partition=true;    #是否开启动态分区功能,默认false关闭。
第二步 : 设置动态分区模式
set hive.exec.dynamic.partition.mode=nonstrict;   #动态分区的模式,默认strict,表示必须指定至少一个分区为静态分区,nonstrict模式表示允许所有的分区字段都可以使用动态分区。
需求:
将dynamic_partition_table中的数据按照时间(day),插入到目标表d_p_t的相应分区中。

原始表:
create table dynamic_partition_table(day string,ip string)row format delimited fields terminated by ",";

数据
2015-05-10,ip1
2015-05-10,ip2
2015-06-14,ip3
2015-06-14,ip4
2015-06-15,ip1
2015-06-15,ip2

导入数据 : 
load data local inpath '/root/hivedata/dynamic_partition_table.txt' into table dynamic_partition_table;

目标表:
create table d_p_t(ip string) partitioned by (month string,day string);

动态插入:
insert overwrite table d_p_t partition (month,day) 
select ip,substr(day,1,7) as month,day from dynamic_partition_table;

查询:
select * from d_p_t;
select * from dynamic_partition_table;

动态分区是通过位置来对应分区值的。

动态静态分区图解 :

在这里插入图片描述

hive中的查询

语法结构

select [all | distinct] select_expr, select_expr, ...
from table_reference
join table_other on expr
[where where_condition]
[group by col_list [having condition]]
[cluster by col_list | [distribute by col_list] [sort by| order by col_list]
] [limit number]
  • 分桶查询
mapreduce.job.reduces=-1 具体多少看输入数据量
Number of reduce tasks not specified. Estimated from input data size: 1

set mapreduce.job.reduces=2;
Number of reduce tasks not specified. Defaulting to jobconf value of: 2

cluster by 根据指定的字段分 并且在每个桶内排序 分且排序(字段是同一个)

  • distribute by (分)+sort by(排序) 两个字段可以不一样
#根据学号分桶 , 根据年龄排序
#分桶前需要开启分桶规则 , 并且设置分桶的数量
set hive.enforce.bucketing = true;
set mapreduce.job.reduces=4;
select * from student distribute by(Sno) sort by(sage);

当两个字段一样的时候

cluster by =distribute by (分)+sort by(排序)

  • order by(全局排序)
select * from student order by(sage);
Number of reduce tasks determined at compile time: 1
全局意味着输出文件一个  也就是只有一个reduce task
导出表数据

insert + directory 注意overwrite

将查询结果保存到指定的文件目录(可以是本地,也可以是hdfs)

导出到本地 , 注意 , 导出的文件夹最好是新建的没有数据的 , 因为overwrite会覆盖

insert overwrite local directory '/root/123456' select * from student distribute by(Sno) sort by(sage);
把select查询语句的结果都出到指定的目录下

导出到hdfs

insert overwrite directory '/aaa/test' select * from t_p;
Hive智能本地模式

hive集群模式与本地模式的比较

hive sql---->mapreduce--->yarn-->HDFS(结构化数据)
所谓hive慢在于mr执行慢
---------
hive sql---->mapreduce-->mr本地模式执行(local线程模拟运行)--->hdfs

为此hive提供了智能本地模式,根据一些条件判断是否自动切换

set hive.exec.mode.local.auto=true;
满足下述三个条件智能切换成为本地模式  否则还是集群模式

# 项目总的输入工作量的大小应该小于设置的值
The total input size of the job is lower than: hive.exec.mode.local.auto.inputbytes.max (128MB by default)

#分片的数量应该小于设置的值
The total number of map-tasks is less than: hive.exec.mode.local.auto.tasks.max (4 by default)

#reduce task为0或者1
The total number of reduce tasks required is 1 or 0.

3. Hive join

Hive中除了支持和传统数据库中一样的内关联、左关联、右关联、全关联,还支持LEFT SEMI JOIN 和 CROSS JOIN,但这两种 JOIN 类型也可以用前面的代替。

Hive 支持等值连接 (a.id = b.id ), , 不支持非等值( (a.id>b.id) ) 的连接Hive 支持多 2 个以上表之间的 join .

写 join 查询时,需要注意几个关键点:

  • join 时,每次 map/reduce 任务的逻辑:把最大的那个表写在最后(否则会因为缓存浪费大量内存)。
  • left , right 和 full outer 关键字用于处理 join 中空记录的情况select a.val, b.val from a left outer join b on (a.key=b.key)
  • Join发生在WHERE子句之前
  • Join 是不能交换位置的

关于hive中的各种join
准备数据 a.txt

1,a
2,b
3,c
4,d
7,y
8,u

b.txt

2,bb
3,cc
7,yy
9,pp

建表:

create table a(id int,name string)
row format delimited fields terminated by ',';

create table b(id int,name string)
row format delimited fields terminated by ',';

导入数据

load data local inpath '/root/hivedata/a.txt' into table a;
load data local inpath '/root/hivedata/b.txt' into table b;

测试 :

inner join

select * from a inner join b on a.id=b.id;
结果如下 : 展示的是两个表的匹配部分
+-------+---------+-------+---------+--+
| a.id  | a.name  | b.id  | b.name  |
+-------+---------+-------+---------+--+
| 2     | b       | 2     | bb      |
| 3     | c       | 3     | cc      |
| 7     | y       | 7     | yy      |
+-------+---------+-------+---------+--+

**left join **

select * from a left join b on a.id=b.id;
结果如下 : 展示的是左表的全部 , 右边没有匹配到的的展示为NULL
+-------+---------+-------+---------+--+
| a.id  | a.name  | b.id  | b.name  |
+-------+---------+-------+---------+--+
| 1     | a       | NULL  | NULL    |
| 2     | b       | 2     | bb      |
| 3     | c       | 3     | cc      |
| 4     | d       | NULL  | NULL    |
| 7     | y       | 7     | yy      |
| 8     | u       | NULL  | NULL    |
+-------+---------+-------+---------+--+

right join

select * from a right join b on a.id=b.id;
结果如下 : 展示的是右表的全部 , 左表为匹配到的展示位NULL
+-------+---------+-------+---------+--+
| a.id  | a.name  | b.id  | b.name  |
+-------+---------+-------+---------+--+
| 2     | b       | 2     | bb      |
| 3     | c       | 3     | cc      |
| 7     | y       | 7     | yy      |
| NULL  | NULL    | 9     | pp      |
+-------+---------+-------+---------+--+

outer join

select * from a full outer join b on a.id=b.id;
结果如下 : 展示结果为左右表的全部 , 各自未匹配的展示为NULL
+-------+---------+-------+---------+--+
| a.id  | a.name  | b.id  | b.name  |
+-------+---------+-------+---------+--+
| 1     | a       | NULL  | NULL    |
| 2     | b       | 2     | bb      |
| 3     | c       | 3     | cc      |
| 4     | d       | NULL  | NULL    |
| 7     | y       | 7     | yy      |
| 8     | u       | NULL  | NULL    |
| NULL  | NULL    | 9     | pp      |
+-------+---------+-------+---------+--+

hive中的特别join

select * from a left semi join b on a.id = b.id;
等价于
select a.* from a inner join b on a.id=b.id;
但是上面一个的性能要优于下面的
结果如下 : 展示a表中的两表匹配的部分 , 只有a表
+-------+---------+--+
| a.id  | a.name  |
+-------+---------+--+
| 2     | b       |
| 3     | c       |
| 7     | y       |
+-------+---------+--+
相当于
select a.id,a.name from a where a.id in (select b.id from b); 在hive中效率极低

select a.id,a.name from a join b on (a.id = b.id);

select * from a inner join b on a.id=b.id;

cross join(##慎用)

返回两个表的笛卡尔积结果,不需要指定关联键。
select a.*,b.* from a cross join b;

4. Hive参数配置

4.1 Hive 命令行

通过本地模式执行

输入$HIVE_HOME/bin/hive –H或者 –help 可以显示帮助选项:

说明:

1、 -i 初始化 HQL 文件。
2、 -e 从命令行执行指定的 HQL
3、 -f 执行 HQL 脚本
4、 -v 输出执行的 HQL 语句到控制台
5、 -p connect to Hive Server on port number
6、 -hiveconf x=y Use this to set hive/hadoop configuration variables.

例如

# 直接查询表a
$HIVE_HOME/bin/hive -e 'select * from tab1 a';
# 将sql语句写入到脚本 , 通过脚本执行查询
$HIVE_HOME/bin/hive -f /home/my/hive-script.sql
$HIVE_HOME/bin/hive -f hdfs://<namenode>:<port>/hive-script.sql
# 初始化HQL文件
$HIVE_HOME/bin/hive -i /home/my/hive-init.sql
$HIVE_HOME/bin/hive -e 'select a.col from tab1 a'
--hiveconf hive.exec.compress.output=true
--hiveconf mapred.reduce.tasks=32
4.2 Hive 参数配置方式
  • hive配置参数
    • 配置文件 (全局有效)
    • 命令行参数 (对hive启动实例有效)
    • 参数声明 (对hive的连接session有效)
conf/hive-site.xml  全局有效 不管本地还是远程模式 
bin/hive --hiveconf key=value  会话级别  谁启动谁设置 谁生效
set hive.exec.mode.local.auto=false;  会话级别 谁连接 谁设置谁生效

上面三种模式范围越来越小 , 优先级越来越高

5. Hive函数

5.1 内置运算符

Hive有四种类型的运算符 :

  • 关系运算符
  • 算术运算符
  • 逻辑运算符
  • 复杂运算

具体见《Hive官方文档》或者《hive常用运算符和函数.doc》

5.2 内置函数

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

测试各种内置函数的快捷方法:

创建一个 dual 表create table dual(id string);

load 一个文件(只有一行内容:内容为一个空格)到 dual 表

load data local inpath '/root/hivedata/dual.txt' into table dual;

查询 :

select substr('angelababy',2,3) from dual;
开头以1开始 , 小于1的都当做1
+------+--+
| _c0  |
+------+--+
| nge  |
+------+--+

具体见《Hive官方文档》或者《hive常用运算符和函数.doc》

5.3 Hive 自定义函数和Transform
5.3.1 UDF开发实例
  • hive UDF开发

    • 继承UDFl类
    • 重载evaluate方法
    • 打包上传到hive的classpath中
    add jar /xxx.jar
    
    • 注册自定义函数
    create temporary function 自定义函数名 as '类全路径';
    

    自定义函数本质是临时函数 跟连接的会话有关

新建JAVA maven项目

添加hive-exec-1.2.1.jar 和 hadoop-common-2.7.4.jar 依赖

<dependencies>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.4</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.2</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                                <filters>
                                    <filter>
                                        <artifact>*:*</artifact>
                                        <excludes>
                                            <exclude>META-INF/*.SF</exclude>
                                            <exclude>META-INF/*.DSA</exclude>
                                            <exclude>META-INF/*.RSA</exclude>
                                        </excludes>
                                    </filter>
                                </filters>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

1、写一个 java 类,继承 UDF,并重载evaluate 方法

import org.apache.hadoop.hive.ql.exec.UDF;

/**
 * @author CoderCK
 * @Title: com.itck.hive.udf
 * @ProjectName example-udf
 * @Description: TODO
 * @create 2018/11/20  21:47
 **/
public class Lower extends UDF {
    //Hive自定义函数具体逻辑实现的地方
    public String evaluate(String in){
        return in.toLowerCase();
    }
    //求和
    public int evaluate(int a,int b){
        return a + b;
    }
}

2、打成 jar 包上传到服务器

3、将 jar 包添加到 hive 的 classpath

add jar /root/example-udf-1.0-SNAPSHOT.jar;

4、创建临时函数与开发好的 java class 关联

create temporary function tolowercase as 'com.itck.hive.udf.Lower';

5、测试

select tolowercase("ABC");
结果如下 :
+------+--+
| _c0  |
+------+--+
| abc  |
+------+--+
--------------
select tolowercase(1,2);
+------+--+
| _c0  |
+------+--+
| 3    |
+------+--+
5.3.2 Transform实现(了解)

Hive的Transform关键字提供了在SQL中调用自写脚本的功能

适合实现 Hive 中没有的功能又不想写 UDF 的情况

使用示例 1:下面这句 sql 就是借用了 weekday_mapper.py 对数据进行了处理.

add file weekday_mapper.py;
insert overwrite table u_data_new
select
transform (movieid , rate, timestring,uid)
using 'python weekday_mapper.py'
as (movieid, rating, weekday,userid)
from t_rating;

其中 weekday_mapper.py 内容如下

#!/bin/python
import sys
import datetime
for line in sys.stdin:
line = line.strip()
movieid, rating, unixtime,userid = line.split('\t')
weekday = datetime.datetime.fromtimestamp(float(unixtime)).isoweekday()
print '\t'.join([movieid, rating, str(weekday),userid])

扩展 : 特殊分隔符

数据格式为
1||zhangsan
2||lisi
由于row format delimited指定是单个字符分隔 , 所以此时我们可以采用serde来实现特殊分隔符
create table t_shuang_1(id string,name string)
row format serde 'org.apache.hadoop.hive.serde2.RegexSerDe'
with serdeproperties(
'input.regex'='(.*)\\|\\|(.*)',
'output.format.string'='%1$s %2$s'
)
Hive之DML数据操作 Hive简介:https://blog.youkuaiyun.com/weixin_45102492/article/details/104418259 Hive安装部署 : https://blog.youkuaiyun.com/weixin_45102492/article/details/104418666 Hive数据类型: https://blog.youkuaiyun.com/weixin_45102492/article/details/91048019 Hive之DDL数据定义: https://blog.youkuaiyun.com/weixin_45102492/article/details/91349323 Hive 立即下载

相关推荐

银河麒麟V10 SP3下NFS客户端挂载失败?5个常见问题排查与修复

本文针对银河麒麟V10 SP3系统中NFS客户端挂载失败的常见问题,提供了5个实战排查方案。从基础服务状态检查到防火墙配置、版本兼容性、/etc/fstab设置及权限映射,详细解析了问题根源与解决方案,帮助用户快速恢复NFS文件共享功能。

weixin_42525005的博客 363

Hive - Load Data 数据过长或过短

Hive 可以通过load data inpath 加载本地或者 hdfs 的数据到 hive 表中,有时会出现生成数据长于 hive 表字段或者短于 hive 表字段的情况,经过测试,两种情况下 Load Data 到 hive 表中均没有问题。

BITDDD小栈 1797

山东大学FPGA课程实验一 加法器设计

电子设计自动化与FPGA设计,实验一 加法器设计

2503_91283667的博客 869

hive数据仓库课后答案

Hive数据仓库应用课后答案

qq_56694838的博客 1万+

基于STM32和MPU6050的手势控制小车设计与实现

MPU6050传感器:用于检测手势变化,采集加速度和陀螺仪数据。STM32微控制器:处理MPU6050传感器的数据,根据手势变化控制小车的运动。电机驱动模块:接收来自STM32的控制信号,驱动小车的电机,实现小车的前进、后退、左转和右转。小车底盘:作为整个系统的机械部分,提供移动平台。MPU6050是一款集成了3轴加速度计和3轴陀螺仪的传感器,具有高精度、低功耗和小体积等特点。它通过I2C接口与微控制器通信,可以实时采集加速度和角速度数据,广泛应用于运动检测、姿态控制和手势识别等领域。

m0_57781768的博客 2309

VASPKIT绘制平面平均电荷差分密度

平面平均密度差(planar-averaged electron density difference)是密度差的衍生。密度差是个三维空间函数,经常通过绘制平面图、等值面图方式图形化考察。虽然这两种图很直观,但平面图会受到截面选取的影响,而等值面图会受到等值面数值(isovalue)选取的影响,因此都有一定任意性,也不容易定量讨论。对于电子转移有比较明确方向的情况,可以绘制平面平均密度差曲线,由此可以清楚地考察垂直于选取的方向上每个截面上的密度差积分值,在定量讨论、对比上比较便利。

weixin_43948934的博客 1万+

Hive SQL DML语法笔记

3student 到HDFS/(数据在HDFS)

qq_62380583的博客 976

大开眼界的十大开源人工智能项目

这是一个强大的开源工具,能让你在不同框架之间自由切换,无需重写代码。它是一个开源工具,能用简单的SQL语言同时处理数据和AI模型,让一切变得有序而高效。Rasa是我开发智能聊天机器人时的首选,它让你轻松掌控机器人对话的每个细节。我经常用它快速验证模型在不同框架下的表现,省去了大量烦躁的调试过程。最近发现的Vapi是一个以API方式提供的语音AI工具,开发者友好程度超乎想象。KNIME是一个以拖拽方式构建数据分析流程的开源工具,仿佛是数据界的乐高积木。它像个忠诚的守门员,确保你的模型始终健康运行。

wjianwei666的专栏 1105

Hive中的DML操作

DML是Data Manipulation Language的缩写,意思是数据操纵语言,是指在SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令。一并导处的HDFS路径,Import可将Export导出的内容导入Hive,表的数据和元数据信息都会恢复。(2)overwrite:表示覆盖表中已有数据,否则表示追加。(3)加载数据覆盖表中已有的数据。①上传文件到HDFS。

W_chuanqi的博客 2855

【Unity】NGUI下载与导入

Unity3D插件NGUI的下载和导入。

Get your hands dirty 3万+

全网最强AI辅助课题申报教程!超详细流程拆解,助你快速提高课题申报成功率(附各部分高效提示词)

实验法要详细说明自变量、因变量、实验类型、实验过程、实验步骤、测量工具名称、被试取样方式、无关变量控制方法。这个部分就是让评审专家相信我们有能力把这个项目干成,写的时候要重点突出两块内容:第一是研究基础,包括你或团队在相关领域已有的研究成果,比如发表的论文、承担过的课题、获得过的奖励、相关研究经验等,要具体、有说服力;课题申报专门给我们留了一小节用来突出课题的创新之处,不管是研究角度、研究对象、研究方法,还是应用价值都可以提炼作为我们的创新点,最后的语气成果也要明确具体,且要和课题内容紧密相关。

智能AI让学术科研更容易 665

hive使用本地模式

hive使用本地模式

wisgood的专栏 3万+

【TC3xx芯片】TC3xx DMA模块详解

TC3xx DMA模块详解

qq_36056498的博客 5917

hive

Hive 一 . hive1. 概述1.2. 组成架构(运行流程)1.3. 特点4. Hive和数据库的区别二、Hive的搭建2.1. 版本的选择2.2. 步骤2.3. 软件的基本操作2.3.1. 进入hive2.3.2. 操作2.3.3. 退出2.3.4. hive对本地文件数据进行表的映射操作2.3.5. 转移元数据的存储路径2.3.6. metastore的设置方式 :元数据2.3.7. 设...

我还是个菜鸟 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【Hive】Hive基本操作

前言实验步骤一、实验环境准备1.首先在Linux本地新建/data/hive2目录。2.切换到/data/hive2目录下,使用wget命令,下载http://59.74.172.143:60000/allfiles/hive2中cat_group和goods文件。3.输入jps检查Hadoop相关进程,是否已经启动。若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。4....

码农印象 2274

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Hive的DML数据操作

DML是Data Manipulation Language的缩写,意思是数据库操纵语言,主要是指对数据库的增删改查操作。Hive虽然是数据仓库,但是它也有的DML。今天刚好学习了,通过此文章来巩固并记录学习过程。 1.数据导入 load 语法: load data [local] inpath '/opt/module/datas/student.txt' [overwrite] into ...

weixin_43854618的博客 567

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Hive DDL和DML

在关系型数据库管理系统(RDBMS)中,(Data Definition Language)和(Data Manipulation Language)是两类不同类型的SQL语句,用于对数据库进行不同的操作。DML(Data Manipulation Language):DML语句用于对数据库中的数据进行操作,包括查询、插入、更新和删除数据。需要注意的是,DDL语句会对数据库的结构进行修改,可能会对数据库的完整性和安全性产生重大影响,因此通常需要具有足够权限的用户来执行。

zhongmingyu 807

HIVE中shell、hdfs、ddl、dml操作及分区分桶

文章目录在Hive中执行shell命令和hdfs命令1.执行shell命令2.执行hdfs命令DDL操作1.Hive中的数据库操作2.创建表2.1建表示例2.2内部表2.3外部表2.4分区表 在Hive中执行shell命令和hdfs命令 1.执行shell命令 用户可以执行简单的bash shell命令,只要在命令前加上!并且以分号结尾。Hive CLI不能使用需要用户进行输入的交互式命令,而且不...

tyhawk的博客 1079

Hive DDL DML基本操作

任务目标 1.了解Hive的基本操作 2.了解Hive的外部表与普通表的区别 相关知识 Hive定义了一套自己的SQL,简称HQL,它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。 DDL操作(数据定义语言)包括:Create、Alter、Show、Drop等。 (1)create database- 创建新数据库 (2)alter...

qq_43240913的博客 406

Hive数据操作

目录 Hive数据操作 DDL数据定义 数据库操作 数据表操作 DML数据操作 数据导入 数据导出 Hive数据操作 DDL数据定义 数据库模式定义DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。 数据库操作 (1)创建数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db...

StephenYou的自习室 745

hive2,DDL,DML,DQL

一.DDL 查看已存在表的详细信息 show create table或者desc tablename/desc formatted tablename 显示所有表 show tables 更改表 alter table student rename to student2 创建视图 create view student2_view 查看视图 ...

qq_53895159的博客 980

Hive基本语句及函数用法汇总

文章目录1. Hive的基本概念2. Hive基础sql语法2.1 DDL 操作2.2 DML操作:元数据存储2.3 DQL操作:数据查询SQL2.4 从SQL到HiveQL应转变的习惯3. Hive基本函数汇总3.1 常用数据类型3.2 语法关键字3.3 hive常用函数整理 1. Hive的基本概念 1.1 hive是什么? Hive是基于Hadoop的数据仓库工具,相当于hadoop之上的...

seven的博客 9449

HIVE操作语句--DML篇

HIVE-DML操作语言汇总

小猿天地 865

HIVE 基础DDL+DML之表操作

Hive数据抽象/结构 database HDFS一个目录 table HDFS一个目录 下面存的文件 data 文件 partition 分区表 HDFS一个目录 下面存的文件 data 文件 bucket 分桶 HDFS一个文件 desc database hive desc database extended hive3 hive> set hive.cli....

我只是个小学生 能力有限 一直抱着学习的态度 238

Hive(DML)数据操作

语法: from table table_name1 as a join table_name2 as b ##as 重新命名表名。import table table_exit_name from '需要导入数据的源路径'语法:from table_name1 [as 别名a] join table_name2 [as b][having 分组后的过滤条件][order by colu_name] **排序**[where 过滤条件] [group by colu_name] **分组**

weixin_58837843的博客 530
上一篇: Hive----【DDL操作、对数据表的操作】
下一篇: 网站流量日志系统知识详解----【点击流事件详解】
CoderBoom
博客等级 码龄8年 62粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值