内部表与外部表——头歌

这篇具有很好参考价值的文章主要介绍了内部表与外部表——头歌。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

任务描述

本关任务:创建外部表,并导入数据。

相关知识

为了完成本关任务,你需要掌握:1.表的各种操作。

内部表和外部表

Hive 默认创建内部表(managed table),存储位置在 hive.metastore.warehouse.dir 设置,默认位置是 /user/hive/warehouse。导入数据到内部表的时候是将文件剪切(移动)到指定位置,即原有路径下文件不再存在。删除内部表的时候,元数据和 HDFS 对应的目录节点都将被删除。默认创建的就是内部表,语法如下:

  1. create table table_name
  2. (
  3. field1 data_type comment 'a comment',
  4. field2 data_type comment 'a comment',
  5. ...
  6. )
  7. row format delimited ## 行分割
  8. fields terminated by‘,’ ## 字段分隔符
  9. lines terminated by‘\n’ ## 行分隔符
  10. stored as textfile; ## 作为文本存储

案例如:

  1. create table test
  2. (
  3. id int comment 'userID',
  4. a string comment 'userName'
  5. )
  6. row format delimited ## 行分割
  7. fields terminated by' ' ## 字段分隔符
  8. lines terminated by'\n' ## 行分隔符
  9. stored as textfile; ## 作为文本存储

其中 comment 可以省略。后面的几行规定了外部导入文件的数据格式。例如上述要求为:外部数据的组织是行分割,每个字段之间用逗号分割,每一行数据之间用换行符分割,文件格式为 txt。在某名为 data.txt 的外部文件中有以下格式的数据可以被正确导入:

  1. 2014001 小王1
  2. 2014002 小李2
  3. 2014003 小明3
  4. 2014004 阿狗4
  5. 2014005 姚明5

我们可以从外部文件导入数据,命令如下:

load data local inpath 'data_path' into table table_name;

其中 data_path 是外部文件的路径。

外部表文件可以在外部系统上,只要有访问权限就可以。外部表导入文件时不移动文件,仅仅是添加一个 metadata。删除外部表时,仅元数据被删除,HDFS 对应的目录节点不会被删除。外部表指向的数据发生变化的时候会自动更新,不用特殊处理。创建外部表命令添加一个 external 即可,

create external table table_name (xxx);

分辨外部表内部表可以使用 desc formatted table_name; 命令查看。

表操作

进入数据库:use database_name;

查看当前数据库下所有表: show tables;

查看某个数据库下所有表: show tables in db_name;

查看表结构:desc table_name;

向表中插入数据:insert into table_name values(value1,value2,...);

增加一个新列:alter table test add columns (new_column data_type comment 'a comment');

查看表数据:select * from table_name;

创建一张类似表 table_name 结构的表 table_name1:create table table_name1 like table_name;

表的重命名:alter table table_name rename to table_name1;

编程要求

在当前目录下创建一个外部数据文件,其中的内容为:

  1. 2014001,小王1
  2. 2014002,小李2
  3. 2014003,小明3
  4. 2014004,阿狗4
  5. 2014005,姚明5

创建一张名为 student 的内部表,导入上述外部文件的数据。然后插入以下数据。

  1. 2014006,小王6
  2. 2014007,小李7

测试说明

平台会对你的操作结果进行测试。

实验过程

打开vi编辑器

vim data.txt

按i在data.txt中加入以下内容

2014001,小王1
2014002,小李2
2014003,小明3
2014004,阿狗4
2014005,姚明5

按esc,输入:wq保存退出

打开hive

hive

输入以下内容

create table student
(
id int ,
a string 
)
row format delimited   
fields terminated by ','
lines terminated by '\n'
stored as textfile;
load data local inpath '/root/data.txt' into table student;
insert into student values(2014006,"小王6");
insert into student values(2014007,"小李7");

最后进行查询

select * from student; 

测试通过文章来源地址https://www.toymoban.com/news/detail-721639.html

到了这里,关于内部表与外部表——头歌的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive内部表及外部表

    内部表,也叫托管表,是Hive在创建表时的默认表。 特点:在内部表被删除后,表的元数据和表数据都从HDFS中完全删除 create table if not exists 表名( 字段名称 字段类型, ... 字段名称 字段类型 ) comment 表的注释 raw format delimited fields terminated by \\\'分隔符\\\'  #列以\\\'分隔符\\\'分割 line 

    2024年02月05日
    浏览(25)
  • Hive内部表和外部表的区别

    未被 external 修饰的是 内 部表 被 external 修饰的为 外 部表。 区别: 内 部表数据由 Hive 自身管理; 外 部表数据由 HDFS 管理; 内 部表数据存储的位置是 hive.metastore.warehouse.dir(默认:/user/hive/warehouse) ; 外 部表数据的存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的

    2024年02月16日
    浏览(31)
  • hadoop 报不是内部或外部命令的解决办法

    两点需要注意的地方, 1.环境变量/系统变量,里面的 JAVA_HOME 必须,使用 C:Progra~1Javajdk1.8.0_341 这种方式, C:Progra~1Javajdk1.8.0_341 去替代 C:Program FilesJavajdk1.8.0_341 即 C:Progra~1 替代 C:Program Files 其他方式,比如用双引号将 C:Program FilesJavajdk1.8.0_341 括起来的方式,我测试过了,不好使

    2023年04月16日
    浏览(33)
  • windows环境hadoop报错‘D:\Program‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    错误:windows环境hadoop报错’D:Program’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 错误方法: (1)配置HADOOP_HOME环境变量时,将路径中的Program Files修改为Progra~1,以便系统识别,无效 (2)将地址中的D:/Program Files改为\\\"D:/Program Files\\\",无效 下载压缩包后的安装

    2024年02月16日
    浏览(50)
  • 头歌大数据作业二:搭建Hadoop环境及HDFS

    课外作业二:搭建Hadoop环境及HDFS 作业详情 内容 阿里云-云起实验室-《搭建Hadoop环境》-Hadoop-2.10.1伪分布式: 1.截图本实验ECS的公网IP地址,并添加彩色框标注,如下图所示: 2.步骤6.启动Hadoop成功之后,截图并添加彩色框标注,如下图所示 3.hdfs 根目录创建文件夹(文件夹命

    2024年02月08日
    浏览(37)
  • hive表导入外部数据

    生成1亿条数据到文件 data_gen_multi_proc_xxxx.txt 中,cpu8核耗时4min左右 这里不细说具体格式,可以通过hive基础知识进行学习。 Hive基础学习_hive在线学习_程序员的人生K的博客-CSDN博客 Hive超详细介绍_hive中reducer什么意思_「已注销」的博客-CSDN博客 *或者通过其他hive表进行insert ..

    2024年02月16日
    浏览(26)
  • 【SpringBoot】--03.数据访问、基础特性(外部化和内部外配置、整合JUnit)

    学习视频: 尚硅谷SpringBoot3视频 SpringBoot 整合 Spring 、 SpringMVC 、 MyBatis 进行 数据访问场景 开发 勾选之后会导入以下包 安装 MyBatisX 插件,帮我们生成Mapper接口的xml文件即可 在接口处 : Alt + 回车 必须把mapper的xml文件映射位置在配置文件定义! 而驼峰命名转换建议也开启 编

    2024年02月15日
    浏览(30)
  • 【SpringBoot3】--03.数据访问、基础特性(外部化和内部外配置、整合JUnit)

    学习视频: 尚硅谷SpringBoot3视频 SpringBoot 整合 Spring 、 SpringMVC 、 MyBatis 进行 数据访问场景 开发 勾选之后会导入以下包 安装 MyBatisX 插件,帮我们生成Mapper接口的xml文件即可 在接口处 : Alt + 回车 必须把mapper的xml文件映射位置在配置文件定义! 而驼峰命名转换建议也开启 编

    2024年02月16日
    浏览(31)
  • 一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据

    在Hive的ODS层建外部表,然后加载HDFS中的CSV文件数据 注意 :CSV文件中含有未解析的JSON格式的字段数据,并且JSON字段中还有逗号 JSON数据的字段track_data只显示一部分数据,因为JSON格式数据里面也含有逗号 [{\\\"id\\\":\\\"14\\\",\\\"length\\\":5.0,\\\"height\\\":3.0,\\\"posX\\\":63.0,\\\"posY\\\":37.0,\\\"acs\\\":99.0,\\\"angle\\\":83.0,\\\"alti

    2024年02月16日
    浏览(33)
  • 大数据之Hadoop数据仓库Hive

    Hive 是一个构建在 Hadoop 之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类 SQL 查询功能,用于查询的 SQL 语句会被转化为 MapReduce 作业,然后提交到 Hadoop 上运行。 特点: 简单、容易上手 (提供了类似 sql 的查询语言 hql),使得精通 sql 但是不了解 Java 编程的人也

    2024年02月01日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包