【问题标题】:pydoop cp method - how to specify keyword argument "errors"pydoop cp 方法 - 如何指定关键字参数“错误”
【发布时间】:2021-06-09 00:55:06
【问题描述】:

我正在使用 pydoop 在 hdfs 位置之间复制文件。 pydoop.hdfs.cp(src_hdfs_path, dest_hdfs_path, **kwargs) 方法文档在此页面上。 https://crs4.github.io/pydoop/api_docs/hdfs_api.html

根据文档,关键字参数与 open() 函数相同。所以我尝试了以下代码

import pydoop.hdfs as hdfs
hdfs.cp(srcpath, destpath, errors='ignore')

如果目标路径中不存在文件,则代码有效。否则它会给出一个文件已经存在的错误。换句话说,errors='ignore' 参数不起作用。

这看起来像 pydoop 错误还是我提供了错误的参数?

谢谢。

【问题讨论】:

    标签: python hadoop hdfs


    【解决方案1】:

    正如open 文档所述

    errors 是一个可选字符串,指定如何编码和解码 错误要处理...

    error='ignore' 在读取或写入文件时忽略编码/解码错误。

    hdfs.cp函数抛出“文件已存在”的错误。

    【讨论】:

    • Shiva,感谢您为我指明了正确的方向。我更多地查看了文档,这表明这个 cp 方法确实打开了源文件,因此涉及到编码。正如您所解释的,此“错误”参数仅用于编码/解码错误。我对为什么 pydoop 实现这样的复制方法感到困惑。无论如何,我将使用 pydoop 包提供的其他复制方法,这些方法不涉及打开源文件,并且通过简单地替换现有文件来抑制“文件存在”错误。
    • 我使用的复制方法是pydoop.hdfs.hdfs().copy(from_path, to_hdfs, to_path)
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2011-01-28
    • 1970-01-01
    • 2013-01-26
    • 2020-12-19
    • 1970-01-01
    相关资源
    最近更新 更多