delphi 本地计算机的树状目录_[Hive] 本地数据载入hive及报错“Invalid path”解决方案...

本文介绍了在使用Hive时遇到的`Invalid path`错误,原因是将教程中的“本地”误解为个人电脑。解决方法包括在服务器上选择数据存储位置,通过`scp`命令将本地文件上传到服务器,然后使用Hive将数据载入到表中。文章还提供了相关操作的Linux命令提示和步骤。
摘要由CSDN通过智能技术生成

hive中用load data local inpath载入本地数据时出错,报错找不到路径,原因:

我本地路径用的是自己电脑上的路径,但是Hive本地装载数据中的"本地"指的是服务器的本地,而非我们电脑所在的“本地”。

如果是学习hive,在自己电脑上搭建练习环境,可能需要了解如何将“本机”(电脑)上的数据载入到hive。网上一些教程没有说明本地指“服务器”的原因是因为分布式计算所用到的数据量非常大,在实际操作中不太可能存在自己的电脑上,因此本地默认指服务器是合理的。但是对于非计算机背景的初学者,我们往往会把教程中的“本地”当做自己电脑上的本地。

折腾了半天,想把整个过程写出来,希望能帮助需要的人。

  1. 想好要把数据存储在服务器的什么位置
    假设现在已经启动hadoop,但是没有进入hive。可以在服务器界面输入
ls /

看一下有哪些目录,例如我的界面就是:

fb7ab92de917cc4a0d8ff9c1c26b021f.png

(在服务器界面的所有操作都会用到linux代码,包括如何移动文件夹、创建文件夹、访问文件、修改保存文件等,如果这方面不是很清楚,可以去百度下linux的常用代码。对于Mac用户来说,平时在terminal中操作用到的代码就是linux代码)

看到目录后,想好你想把数据存在服务器的哪个位置。比如,我想存储在home这个文件夹中:

fa4a2e54770ac4c065f9035a5ae2fd85.png

上面的代码意思是,移动到home文件夹中的hadoop文件夹中,用ls指令看下该文件夹下有什么文件,结果发现有datas怎么一个文件夹。我准备把数据存到这个文件夹下。

2. 把本机文件上传到服务器。

打开terminal,输入

scp '文件在计算机上的路径' root@服务器IP:服务器中的存储位置

例如,我要把电脑桌上上的csv文件存入到服务器的home/hadoop/datas文件夹中,我的服务器IP是111.112.113.114,那么我应该输入:

scp '/Users/name/Desktop/model2_datas.csv' root@111.112.113.114:/home/hadoop/datas/

接下来会要求你输入服务器的密码,输入就可以。如果成功加载数据会在界面显示加载进度,例如:

931c685f4ae1941b730242b9f99d1947.png

3. 重新回到服务器界面,我们可以看到数据已经加载成功

[hadoop@node100 data]$ cd /home/hadoop/datas 
[hadoop@node100 data]$ ls
model2_datas.csv  --返回的结果

上面可以看到datas文件夹中已经有我们载入的csv数据

4. 将数据载入到hive表

1)首先进入hive的界面,进入你的数据库,然后根据你的数据创建一个表

create table 表名
(字段 字段类型,
字段2 字段类型2,
....)
row format delimited fields terminated by ',' --指定字段间的分隔符
tblproperties(
"skip.header.line.count"="1" --跳过文件行首1行
)

2)将服务器本地的数据载入hive表

load data local inpath '服务器中的文件路径' into table 表名

例如我刚才的例子,代码就是

load data local inpath '/home/hadoop/datas/model2_datas.csv' into table model2_datas.csv

参考资料

  1. 拉勾数据分析训练营资料
  2. 百度linux代码资料
  3. hive Invalid path xxxx: No files matching path file: xxxx
  4. Hive之 Hql语法解析
  5. 实战Hive本地文件系统导入数据
  6. mac与虚拟机传输文件
  7. Mac终端连接虚拟机及传输文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值