Load 向表中装载数据

Last updated: ... / Reads: 40 Edit

要将数据加载到Hive表中,可以使用LOAD DATA INPATH语句。以下是语法和一个示例:

语法

LOAD DATA [LOCAL] INPATH 'path_to_data' [OVERWRITE] INTO TABLE table_name [PARTITION (partition_column=value)];

解释:

  • LOAD DATA: 加载数据的关键字。
  • [LOCAL]: 可选参数,指定路径是否为本地文件系统路径。如果不提供此参数,默认为HDFS路径。
  • INPATH: 指定要加载的数据文件或目录的路径。
  • 'path_to_data': 数据文件或目录的路径。对于本地文件系统路径,可以使用绝对路径或相对路径;对于HDFS路径,需要使用完整的HDFS路径。
  • [OVERWRITE]: 可选参数,表示是否覆盖现有表中的数据。如果提供了该参数,则会删除现有数据并替换为新数据;如果省略该参数,默认情况下,新数据将追加到现有数据之后。
  • INTO TABLE table_name: 指定要加载数据的目标表名。
  • [PARTITION (partition_column=value)]: 可选参数,用于指定分区列及其值。只有当目标表是分区表时才需要提供此参数。

示例

假设我们有一个Hive表my_table,包含两个分区列yearmonth,数据存储在HDFS上的/data目录下。我们想将位于/data/input.csv路径下的数据加载到该表中。

LOAD DATA INPATH '/data/input.csv' INTO TABLE my_table;

这将把input.csv文件的内容加载到my_table表中。如果需要覆盖现有数据,可以添加OVERWRITE关键字:

LOAD DATA INPATH '/data/input.csv' OVERWRITE INTO TABLE my_table;

如果要加载特定分区的数据,可以使用PARTITION子句:

LOAD DATA INPATH '/data/input.csv' INTO TABLE my_table PARTITION (year=2023, month=9);

这将把input.csv文件的内容加载到my_table表的year=2023month=9的分区中。

请根据你的实际情况调整路径、表名和分区列的值。


Comments

Make a comment