zoukankan      html  css  js  c++  java
  • Hive_Hive的数据模型_外部表

    Hive的数据模型之外部表

    外部表(External Table)
    - 指向已经在HDFS中存在的数据,可以创建Partition
    - 它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异。
    - 外部表侄有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个外部表时,仅删除该链接。

    1、准备几张相同数据结构的数据txt文件,放在HDFS的/input 目录下。
    2、在hive下创建一张有相同数据结构的外部表external_student,location设置为HDFS的/input 目录。则external_student会自动关连/input 下的文件。
    3、查询外部表。显示/input下具有相同数据结构的所有文件的数据。
    4、删除/input目录下的部分文件。
    5、查询外部表。删除的那部分文件数据不存在。
    6、将删除的文件放入/input目录。
    7、查询外部表。放入的那部分文件数据重现。

    举例如下:

    (1)准备数据:

    student1.txt
    1,Tom,M,60,80,96
    2,Mary,F,11,22,33
    
    student2.txt
    3,Jerry,M,90,11,23
    
    student3.txt
    4,Rose,M,78,77,76
    5,Mike,F,99,98,98
    查看HDFS文件系统现有的目录。
    # hdfs dfs -ls /
    
    创建input目录。
    # hdfs dfs -mkdir /input
    将文件放入HDFS文件系统
    hdfs dfs -put localFileName hdfsFileDir
    # hdfs dfs -put student1.txt /input
    # hdfs dfs -put student2.txt /input
    # hdfs dfs -put student3.txt /input

    (2)创建外部表

    create table external_student
    (sid int, sname string, gender string, language int, math int, english int)
    row format delimited fields terminated by ',' 
    location '/input';

    (3)查询外部表

    select * from external_student;

    (4)删除HDFS上的student1.txt

    # hdfs dfs -rm /input/student1.txt

    (5)查询外部表

    select * from external_student;

    (6)将student1.txt 重新放入HDFS input目录下

    # hdfs dfs -put student1.txt /input

    (7)查询外部表

    select * from external_student;
  • 相关阅读:
    selenium自动登陆
    解决selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expiry'
    python selenium 自动登陆
    Python操作CSV和Excel
    scrapy Request方法
    from lxml import etree报错
    python文件管道 下载图集
    scrapy基本爬虫,采集多页
    《全唐诗》与《全宋词》
    [转]一个程序员的哲学思考(关于编程、关于人生)
  • 原文地址:https://www.cnblogs.com/liupuLearning/p/6323004.html
Copyright © 2011-2022 走看看