[英]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.