Python pydoop cp方法-如何指定关键字参数;“错误”;
我正在使用pydoop在hdfs位置之间复制文件。pydoop.hdfs.cp(src_hdfs_path,dest_hdfs_path,**kwargs)方法文档位于本页 根据文档,关键字参数与open()函数相同。所以我尝试了以下代码Python pydoop cp方法-如何指定关键字参数;“错误”;,python,hadoop,hdfs,Python,Hadoop,Hdfs,我正在使用pydoop在hdfs位置之间复制文件。pydoop.hdfs.cp(src_hdfs_path,dest_hdfs_path,**kwargs)方法文档位于本页 根据文档,关键字参数与open()函数相同。所以我尝试了以下代码 import pydoop.hdfs as hdfs hdfs.cp(srcpath, destpath, errors='ignore') 如果目标路径中不存在该文件,则该代码有效。否则它会给出一个文件已经存在的错误。换句话说,errors='ignore
import pydoop.hdfs as hdfs
hdfs.cp(srcpath, destpath, errors='ignore')
如果目标路径中不存在该文件,则该代码有效。否则它会给出一个文件已经存在的错误。换句话说,errors='ignore'参数不起作用
这看起来像是pydoop bug还是我提供了错误的参数
谢谢。如文档所述
错误是一个可选字符串,用于指定编码和解码的方式
错误将被处理
error='ignore'
仅在读取或写入文件时忽略编码/解码错误
函数抛出了“文件已存在”的错误。Shiva,感谢您为我指明了正确的方向。我查看了更多文档,其中显示此cp方法确实打开了源文件,因此涉及编码。正如您所解释的,此“errors”参数仅用于编码/解码错误。我对pydoop为什么实现这样的复制方法感到困惑。无论如何,我将使用pydoop软件包提供的其他复制方法,这些方法不涉及打开源文件,并且通过简单地替换现有文件来抑制“文件存在”错误。我使用的复制方法是pydoop.hdfs.hdfs().copy(from_path,to_hdfs,to_path)