簡體   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