将文件放在HDFS上,名称中包含空格

时间:2015-06-05 14:33:59

标签: hdfs hadoop2

我有一个名为file name(1).zip的文件(其中包含空格和括号),我想将此文件放在HDFS上。但每当我尝试通过hadoop fs -put ...进行处理时,我都会遇到异常。

我甚至试图在文件周围添加引号,甚至试图逃避空格和括号,但它不起作用。

hduser@localhost:/tmp$ hadoop fs -put file\ name\(1\).zip /tmp/one
15/06/05 15:57:46 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
put: unexpected URISyntaxException

hduser@localhost:/tmp$ hadoop fs -put "file\ name\(1\).zip" /tmp/one/
15/06/05 15:59:19 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
put: unexpected URISyntaxException

hduser@localhost:/tmp$ hadoop fs -put "file name(1).zip" /tmp/one/
15/06/05 16:00:36 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
put: unexpected URISyntaxException

有没有办法将这些文件放在HDFS上,或者我在这里遗漏了什么。

5 个答案:

答案 0 :(得分:4)

用%20替换空格。

空格的百分比编码为%20

使用

hadoop fs -put first%20name.zip /tmp/one

而不是

hadoop fs -put first name.zip /tmp/one

答案 1 :(得分:2)

HDFS完全没有文件或目录名称中的空格。

ids不支持从本地磁盘放入文件名中包含空格的文件。但是有一个技巧可以达到这个目的(reference):

hdfs

希望这可以帮助那些需要这个的人。

答案 2 :(得分:1)

尝试

fs -put 'file name(1).zip' tmp/one

答案 3 :(得分:1)

hadoop fs -get / landing / novdata /' 2017-01-05 - abc def 5H.csv'

查看文件名周围的单引号

答案 4 :(得分:0)

最明显的解决方法是在将文件存储到HDFS之前重命名该文件,您不觉得吗?