将本地数据加载到 Hive 数据库面临的问题

Posted

技术标签:

【中文标题】将本地数据加载到 Hive 数据库面临的问题【英文标题】:loading data local to hive database facing issue 【发布时间】:2017-11-25 12:56:07 【问题描述】:
hive>LOAD DATA INPATH '/hadoop/abc/POC2_Setup/input/warr2_claims_5441F.csv' OVERWRITE INTO TABLE baumuster_pre_analysi_text;

失败:SemanticException Line 1:17 路径无效 ''/hadoop/abc/POC2_Setup/input/warr2_claims_5441F.csv'':没有文件 匹配路径 hdfs://localhost:9000/hadoop/abc/POC2_Setup/input/warr2_claims_5441F.csv

【问题讨论】:

你有文件吗 - hdfs://localhost:9000/hadoop/abc/POC2_Setup/input/warr2_claims_5441F.csv。你有没有机会在 /user/hadoop 而不是 /hadoop 下拥有文件? 【参考方案1】:

如果我们从本地文件系统加载,我们需要使用关键字“local”,如下所示,

LOAD DATA LOCAL INPATH '你的本地文件路径' OVERWRITE INTO TABLE your-hive-table;

如果从 HDFS 加载,

LOAD DATA INPATH '你的 hdfs 文件路径' OVERWRITE INTO TABLE your-hive-table;

【讨论】:

【参考方案2】:

如果您从本地加载数据,则必须提及LOCAL

hive>LOAD LOCAL DATA INPATH '/hadoop/abc/POC2_Setup/input/warr2_claims_5441F.csv' OVERWRITE INTO TABLE baumuster_pre_analysi_text;

如果您的默认目录未设置为本地,那么您必须在路径前提及file:/

【讨论】:

【参考方案3】:

要从本地机器加载数据,您可以使用以下命令:

LOAD DATA LOCAL INPATH '/hadoop/abc/POC2_Setup/input/warr2_claims_5441F.csv' OVERWRITE INTO TABLE baumuster_pre_analysi_text;

【讨论】:

以上是关于将本地数据加载到 Hive 数据库面临的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何将前 2 个 hive 表中的数据加载到下面的第三个表中?

hive数据加载

hive使用parquet及压缩数据大小前后对比

Hive(五)DML数据操作

高速网络加持下,LS1046A牵手边缘计算

Spark抽取mysql中的数据到Hive中