繁体   English   中英

使用 modin panda 读取 sas7bdat 大文件:FactoryDispatcher.read_sas() 需要 1 个位置参数,但给出了 2 个

[英]Reading sas7bdat large file using modin panda: FactoryDispatcher.read_sas() takes 1 positional argument but 2 were given

我想在 jupyter notebook 中读取一个大文件。 (由于 memory 的限制,无法使用 pandas 读取)。 数据文件需要超过 35 GB memory 但我的空间只有 20 GB。 因此,我尝试改用 modin panda 但出现错误。

FactoryDispatcher.read_sas() 采用 1 个位置参数,但给出了 2 个

## Reading sas7bdat
import modin.pandas as pd 
import numpy as np

cabd_2021 = pd.read_sas(
  '/xxx/xxx/xxx/xxxx/xxx/xxxx_010121.sas7bdat',
   format = "sas7bdat",
    encoding="latin-1"
 )
cabd

Returns ERROR
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[9], line 3
      1 ## Les datafil fra SAS
----> 3 cabd= pd.read_sas()

File ~/jxxxxxxxxxxxxxxxxxxxxx/.venv/lib/python3.10/site-packages/modin/logging/logger_decorator.py:128, in enable_logging.<locals>.decorator.<locals>.run_and_log(*args, **kwargs)
    113 """
    114 Compute function with logging if Modin logging is enabled.
    115 
   (...)
    125 Any
    126 """
    127 if LogMode.get() == "disable":
--> 128     return obj(*args, **kwargs)
    130 logger = get_logger()
    131 logger_level = getattr(logger, log_level)

File ~/xxxxxxxxxxxxxxxxxxxxxxxxx/.venv/lib/python3.10/site-packages/modin/pandas/io.py:581, in read_sas(filepath_or_buffer, format, index, encoding, chunksize, iterator, compression)
    577 Engine.subscribe(_update_engine)
    578 from modin.core.execution.dispatching.factories.dispatcher import FactoryDispatcher
    580 return DataFrame(
--> 581     query_compiler=FactoryDispatcher.read_sas(
    582         filepath_or_buffer,
    583         format=format,
    584         index=index,
    585         encoding=encoding,
    586         chunksize=chunksize,
    587         iterator=iterator,
    588         compression=compression,
    589     )
    590 )

TypeError: FactoryDispatcher.read_sas() takes 1 positional argument but 2 were given

这是一个Modin 错误,已在尚未发布的拉取请求中修复。 您可以安装最新版本的 Modin以获得修复,也可以等待 Modin 的下一个补丁版本。 如果您无法更改您的 Modin 版本,您可以使用 pandas.read_sas 将 dataframe 读入pandas.read_sas ,然后从生成的 pandas dataframe 构造一个 Modin dataframe。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM