【发布时间】:2017-08-01 12:43:22
【问题描述】:
我安装了一个单节点 Cloudera 来开始学习这项技术。现在,我正在尝试从 CSV 文件在 HUE 上创建一个表。
当我尝试这样做时,正在创建表但没有任何数据,只有列结构,我收到以下错误:
编译语句时出错:FAILED: SemanticException Line 1:17 路径无效''/user/josholsan/ic_data/_glucosa.csv'':没有文件 匹配路径 hdfs://server_name:8020/user/josholsan/ic_data/_glucosa.csv
错误提示没有与此路径匹配的文件,但是当我在终端中尝试以下操作时,文件就在那里:
hadoop fs -ls hdfs//server_name.8020/user/josholsan/ic_data/_glucosa.csv
HUE 正在执行的创建表的代码如下:
CREATE TABLE `test`.`cpk`
(
`id` bigint ,
`numsipcod` string ,
`valor` bigint ,
`fecharegistro` string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES ("separatorChar" = "\t",
"quoteChar" = "\"",
"escapeChar" = "\\"
)
STORED AS TextFile TBLPROPERTIES("skip.header.line.count" = "1")
;
LOAD DATA INPATH '/user/josholsan/ic_data/_glucosa.csv' INTO TABLE `test`.`glucosa`;
我还尝试使用 LOAD DATA LOCAL INPATH 从本地加载文件。
我实际上不知道如何继续。我一直在检查互联网,但我发现没有帮助我。 当我在此行上方编写命令时,有一些事情引起了我的注意,并且是该文件的权限,权限是: - rw-r--r--
无论如何,我在 HDFS 设置中禁用了权限检查。
任何具有 HDFS/HUE/Cloudera 知识的人都知道这里的问题可能是什么? 提前非常感谢你=)
【问题讨论】:
-
Hive 期望 目录 为
LOCATION,而不是文件。此外,带有前导点或下划线的文件通常是被设计忽略的信号量或临时文件... -
非常感谢@SamsonScharfrichter。使用前导 _ 重命名文件解决了该问题。将目录视为 LOCATION,那么如何指定要加载到表中的文件?没有_它对我有用。再次非常感谢你。您可以将其发布为解决方案吗?