我有一个文件名中有一个方括号。这个文件需要通过hadoopfs-put上传到hadoop。我用的是mapr6。
以下变体导致put:意外的urisyntaxexception
hadoop fs -put aaa[bbb.txt /destination
hadoop fs -put aaa\[bbb.txt /destination
hadoop fs -put "aaa[bbb.txt" /destination
hadoop fs -put "aaa\[bbb.txt" /destination
2条答案
按热度按时间bzzcjhmw1#
hadoop命令,例如
hadoop fs -put
通常在转义名字方面做得不好。这是个坏消息。
好消息是,使用mapr,您可以避免所有这些问题,只需使用标准的linux命令(如cp)将文件复制到mapr文件系统的本地挂载即可。无需“上载”任何内容,因为mapr的感觉和行为与普通文件系统一样。您可以使用nfs或posix驱动程序获得所需的装载。
这样做的最大好处是,您可以从linux命令实现的成熟性中获益。也就是说,这些命令(和shell)正确地引用,您可以相对轻松地得到所需的结果。只用单引号就可以了。
gk7wooem2#
你试过“aaa%5bbbb.txt”吗?