由于Modin不支持从s3上的多个py箭头文件中加载数据,所以我使用py箭头加载数据。
import s3fs
import modin.pandas as pd
from pyarrow import parquet
s3 = s3fs.S3FileSystem(
key=aws_key,
secret=aws_secret
)
table = parquet.ParquetDataset(
path_or_paths="s3://bucket/path",
filesystem=s3,
).read(
columns=["hotelId", "startDate", "endDate"]
)
# to get a pandas df the next step would be table.to_pandas()如果我知道想要将数据放在Modin df中进行并行计算,而不需要写入和读取csv呢?是否有一种方法可以直接从pyarrow.Table或至少从熊猫数据框架构建Modin df?
发布于 2022-03-12 23:13:55
Mahesh的答案应该是可行的,但我相信它会导致完整的数据副本(默认情况下是2X内存占用:https://arrow.apache.org/docs/python/pandas.html#memory-usage-and-zero-copy)。
在撰写本文时,Modin确实有一个本地箭头集成,因此您可以使用
from modin.pandas.utils import from_arrow
mdf = from_arrow(pyarrow_table)发布于 2021-12-15 01:36:11
您不能直接从pyarrow.Table构建Modin数据框架,因为熊猫不支持这一点,而Modin只支持熊猫API的一个子集。但是,该表有一个方法可以将其转换为熊猫数据,您可以用该方法构造Modin数据。使用代码中的table:
import modin.pandas as pd
modin_dataframe = pd.Dataframe(table.to_pandas())https://stackoverflow.com/questions/63705454
复制相似问题