我正在尝试将数据从hdfs插入到配置单元中的外部表。但低于错误。
错误:
Usage: java FsShell [-put <localsrc> ... <dst>]
Command failed with exit code = 255
命令
hive> !hadoop fs -put /myfolder/logs/pv_ext/2013/08/11/log/data/Sacramentorealestatetransactions.csv
> ;
编辑时间:
file location : /yapstone/logs/pv_ext/somedatafor_7_11/Sacramentorealestatetransactions.csv
table location : hdfs://sandbox:8020/yapstone/logs/pv_ext/2013/08/11/log/data
我在 hive 里执行命令
!hadoop fs -put /yapstone/logs/pv_ext/somedatafor_7_11/Sacramentorealestatetransactions.csv hdfs://sandbox:8020/yapstone/logs/pv_ext/2013/08/11/log/data
获取错误:
put: File /yapstone/logs/pv_ext/somedatafor_7_11/Sacramentorealestatetransactions.csv does not exist.
Command failed with exit code = 255
请分享你的建议。
谢谢
3条答案
按热度按时间af7jpaap1#
这个方法可以帮助你更好的学习。
需要在配置单元中创建表。
hive> CREATE EXTERNAL TABLE IF NOT EXISTS mytable(myid INT, a1 STRING, a2 STRING....) row format delimited fields terminated by '\t' stored as textfile LOCATION hdfs://sandbox:8020/yapstone/logs/pv_ext/2013/08/11/log/data;
将数据从hdfs加载到配置单元表。hive> LOAD DATA INPATH /yapstone/logs/pv_ext/somedatafor_7_11/Sacramentorealestatetransactions.csv INTO TABLE mytable;
注意:如果将数据从hdfs加载到配置单元(inpath),数据将从hdfs位置移动到配置单元。所以,下一次hdfs位置上的数据将不可用。检查数据加载是否成功。
hive> SELECT * FROM mytable;
wwodge7n2#
有两种方法可以将数据加载到外部
Hive
table。方法1:
a) 获取目标的位置
HDFS
的文件夹Hive
外部表。b) 请注意
Location
输出中的属性。说吧,是的hdfs:///hive-data/mydata
c) 然后,将文件从本地磁盘放到HDFS
```$ hadoop fs -put /location/of/data/file.csv hdfs:///hive-data/mydata
hive > LOAD DATA LOCAL INPATH '/location/of/data/file.csv' INTO TABLE mytable;
4xrmg8kj3#
再来一个方法。更改配置单元表位置: