gpt4 book ai didi

sql - 配置单元中 `load data inpath ` 和 `location` 之间的区别?

转载 作者:可可西里 更新时间:2023-11-01 14:15:51 26 4
gpt4 key购买 nike

在我的公司,我经常看到这两个命令,我想知道它们之间的区别,因为它们的功能对我来说似乎是一样的:

1

create table <mytable> 
(name string,
number double);

load data inpath '/directory-path/file.csv' into <mytable>;

2

create table <mytable>
(name string,
number double);

location '/directory-path/file.csv';

它们都将数据从 HDFS 上的目录复制到 HIVE 上的表目录中。使用这些时是否应该注意差异?谢谢你。

最佳答案

是的,它们的用途完全不同。

load data inpath 命令用于将数据加载到 hive 表中。 'LOCAL' 表示输入文件在本地文件系统上。如果省略“本地”,则它会在 HDFS 中查找文件。

load data inpath '/directory-path/file.csv' into <mytable>; 
load data local inpath '/local-directory-path/file.csv' into <mytable>;

LOCATION 关键字允许指向其存储的任何 HDFS 位置,而不是存储在配置属性 hive.metastore.warehouse.dir 指定的文件夹中。

换句话说,对于指定的 LOCATION '/your-path/',Hive 不会为此表使用默认位置。如果您已经生成数据,这会派上用场。

请记住,只能在 EXTERNAL 表上指定 LOCATION。对于常规表格,将使用默认位置。

总而言之,load data inpath 告诉 hive 在何处查找输入文件,LOCATION 关键字告诉 hive 在 HDFS 上的何处保存输出文件。

引用资料: https://cwiki.apache.org/confluence/display/Hive/GettingStarted https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL

关于sql - 配置单元中 `load data inpath ` 和 `location` 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com