分享

Hive加载数据用法

 CDA数据分析师 2024-01-08 发布于北京
使用Hive加载数据的语法详解及示例
Apache Hive是一种建立在Hadoop之上的数据仓库工具,它提供了一种类似于SQL的查询语言——HiveQL,用于对大规模数据进行处理和分析。在Hive中,通过LOAD DATA语句可以将本地或Hadoop分布式文件系统(HDFS)中的数据加载到Hive表中。本文将详细介绍LOAD DATA语句的用法,并提供多个示例来帮助理解。
语法概述
LOAD DATA [LOCAL] INPATH '路径' [OVERWRITE] INTO TABLE tb_name [PARTITION(partition_name=partition_value)];
·LOCAL: 可选项,表示数据路径是在本地文件系统上。如果不指定,将默认在HDFS上查找数据。
·INPATH '路径': 指定要加载的数据路径。路径可以是本地文件系统的路径(如果使用了LOCAL关键字),也可以是HDFS路径。
·OVERWRITE: 可选项,表示覆盖表中的数据。如果不指定,则是追加模式。
·INTO TABLE tb_name: 指定目标表的名称。
·PARTITION(partition_name=partition_value): 可选项,指定要加载数据到哪个分区。如果目标表是分区表,可以通过此选项将数据加载到特定分区。如果不是分区表不指定。
语法示例
1. 基本加载
假设有一个非分区表employees,我们想将本地文件系统上的数据加载到该表中:
LOAD DATA LOCAL INPATH '/local/path/employees_data.txt' INTO TABLE employees;
2. 覆盖加载
如果希望覆盖已存在的表数据,可以使用OVERWRITE关键字:    
LOAD DATA LOCAL INPATH '/local/path/employees_data_new.txt' OVERWRITE INTO TABLE employees;
3. 分区加载
假设有一个分区表partitioned_employees,按照department字段进行分区。我们可以使用PARTITION选项加载数据到特定分区:
LOAD DATA LOCAL INPATH '/local/path/employees_data_hr.txt' INTO TABLE partitioned_employees PARTITION (department='HR');
4. 多级分区加载
如果表有多个分区字段,可以在PARTITION选项中指定多个分区:
LOAD DATA LOCAL INPATH '/local/path/employees_data_it.txt' INTO TABLE partitioned_employees PARTITION (department='IT', country='USA');
5. 加载多个文件
可以使用通配符加载多个文件,如下所示:
LOAD DATA LOCAL INPATH '/local/path/employees_data*.txt' INTO TABLE employees;
以上是LOAD DATA语句的基本用法和示例。根据实际情况,可以根据需要选择是否使用LOCALOVERWRITEPARTITION等选项,以灵活处理数据加载操作。    

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多