将文件放在名称中有空格的 HDFS 上
Put file on HDFS with spaces in name
我有一个名为 file name(1).zip
的文件(其中包含 space 和括号),我想将此文件放在 HDFS 上。但是每次我尝试通过 hadoop fs -put ...
放置它时,都会出现异常。
我什至尝试在文件周围添加引号,甚至尝试转义 space 和括号,但它不起作用。
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 上,或者我在这里遗漏了什么。
尝试
fs -put 'file name(1).zip' tmp/one
最明显的解决方法是在将文件存储到 HDFS 之前重命名文件,你不觉得吗?
将 space 替换为 %20。
space 的百分比编码是 %20
使用
hadoop fs -put first%20name.zip /tmp/one
而不是
hadoop fs -put first name.zip /tmp/one
HDFS 完全可以在文件或目录名称中使用空格。
是hdfs
不支持从本地磁盘上传文件名中有空格的文件。但是有一个技巧可以实现这一点( reference ):
cat file\ name\(1\).zip | hadoop fs -put - "/tmp/one/file name(1).zip"
希望对有需要的人有所帮助。
hadoop fs -get /landing/novdata/'2017-01-05 - abc def 5H.csv'
查看文件名周围的单引号
我有一个名为 file name(1).zip
的文件(其中包含 space 和括号),我想将此文件放在 HDFS 上。但是每次我尝试通过 hadoop fs -put ...
放置它时,都会出现异常。
我什至尝试在文件周围添加引号,甚至尝试转义 space 和括号,但它不起作用。
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 上,或者我在这里遗漏了什么。
尝试
fs -put 'file name(1).zip' tmp/one
最明显的解决方法是在将文件存储到 HDFS 之前重命名文件,你不觉得吗?
将 space 替换为 %20。
space 的百分比编码是 %20
使用
hadoop fs -put first%20name.zip /tmp/one
而不是
hadoop fs -put first name.zip /tmp/one
HDFS 完全可以在文件或目录名称中使用空格。
是hdfs
不支持从本地磁盘上传文件名中有空格的文件。但是有一个技巧可以实现这一点( reference ):
cat file\ name\(1\).zip | hadoop fs -put - "/tmp/one/file name(1).zip"
希望对有需要的人有所帮助。
hadoop fs -get /landing/novdata/'2017-01-05 - abc def 5H.csv'
查看文件名周围的单引号