首页 > 解决方案 > 如何将文件从桌面加载到 Hive

问题描述

我正在使用我们用来与 HIVE 交互的内部 HIVE 终端控制台。我有一个带有帐号列表的 csv。我需要从我们数据库中的表格中提取这些帐号中的数据。通常我只会说 where acct_num = XXXXXX 但我有一个需要提取的 800 个列表。我尝试创建一个表,然后使用 infile 加载数据,但似乎无法掌握它。该文件在我的桌面上,但我使用 winscp 将 csv 文件移动到我创建表的“目录”。

这是我正在使用的代码。帐号为 15 位数字,全部为数字。我不确定将其保存为 .csv 是否会影响数字格式,但我尝试将 create table 用作 sting 和 int。

drop table acorn_data.cj_test_accounts_load;
create table acorn_data.cj_test_accounts_load
(acct_num int);
load data inpath 
'/axp/buanalytics/csgsn/dev/Akhilesh/acorn_data/Test_accounts.csv' 
into table acorn_data.cj_test_accounts_load

如果可能的话,我想将此文件加载到至少一个临时表中,以便我可以将它加入到我们数据库中的表中。

标签: sqlhadoophivehdfs

解决方案


取决于这个“桌面”在哪里以及您正在使用哪个网络工具(色调?-我认为您不能)。

然后,您有 2 个选项可将数据从文件加载到配置单元中:

(1) 本地 - 来自 hdfs 所在的 unix 框(很可能不是您的“桌面”)

(2) 非本地 - 来自 hdfs(例如,您可以与 webhdf 交互 - 直接在此处转储文件:https ://hadoop.apache.org/docs/r1.0.4/webhdfs.html ,或hadoop fs -put从提到的 unix 框中执行)

文档参考https ://cwiki.apache.org/confluence/display/hive/languagemanual+dml#LanguageManualDML-Loadingfilesintotables


推荐阅读