【问题标题】:The correct why to debug dask.dataframe.to_parquet调试 dask.dataframe.to_parquet 的正确原因
【发布时间】:2018-04-04 22:14:26
【问题描述】:

我发现在运行to_parquet 函数时,列对象的类型存在一些问题。我正在运行 dask 15.1 版。

我已使用 astype(object) 明确转换了我的列,这有助于处理某些列,但不是全部。
我收到以下错误 - TypeError: bad argument type for built-in operation
添加 object_encoding='utf-8 参数后,我收到以下错误 - TypeError: expected list of bytes

调试此问题的最佳方法是什么?
顺便说一句-我的数据集有希伯来字符。

谢谢

【问题讨论】:

    标签: dask fastparquet


    【解决方案1】:

    正确的拼写是object_encoding='utf8'

    请注意,对象编码通常是按列设置的,因此您可以使用例如object_encoding={'a': 'utf8', 'b': 'bytes'}。特殊值'infer' 尝试猜测给定对象列的正确编码,但这样做并不总是成功;这可能是您看到的第一个错误的原因。

    【讨论】:

    • 感谢您的回答 - 但是我仍然收到错误 - TypeError: bad argument type for built-in operation 即使我使用了明确的 {'colname':'utf8' ...}
    • 当 utf8 编码不是字符串的东西时会出现错误,你应该检查你的数据列并确保它只包含字符串和无。
    • 在运行 to_parquet 之前,我正在使用 dd.col1 = dd.col1.astype(object) 验证它是一个对象,并且没有使用空值(使用 isnull() 检查)。我仍然遇到同样的错误。
    • 问题是,所有元素都是字符串吗?
    • 点赞df['colname'].map(type).value_counts()
    猜你喜欢
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 2020-03-09
    • 1970-01-01
    • 2011-02-06
    • 2018-12-28
    相关资源
    最近更新 更多