我有一个名为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上,或者我在这里遗漏了什么。
答案 0 :(得分:4)
用%20替换空格。
空格的百分比编码为%20
使用
hadoop fs -put first%20name.zip /tmp/one
而不是
hadoop fs -put first name.zip /tmp/one
答案 1 :(得分:2)
答案 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之前重命名该文件,您不觉得吗?