微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将文本文件读入 Dask DataFrame

如何解决将文本文件读入 Dask DataFrame

我希望在大约 100,000 个文本文件上训练模型。 Pandas 遇到了一些内存问题,决定迁移到 dask

我正在尝试将文件读入已存储文件路径的 dask DataFrame。在熊猫中,我可以简单地执行以下操作:

ddf['rawtext'] = [open(file,'rt').read() for file in ddf['filepath']]

但这会产生 NotImplementedError 错误

有没有办法有效地将文本文件读入 dask

解决方法

您可以在 Pandas 中使用 mapmap_partitions 在 Dask 中执行的操作

def read_them(df):
    df['rawtext'] = [open(file,'rt').read() for file in ddf['filepath']]
    return df

ddf2 = ddf.map_partitions(read_them)

ddf2 = ddf.assign(
    raw_text=ddf.filepath.map(lambda x: open(x,'rt').read())
)

第一个选项可能是更多的字符,但感觉更简单,更接近你的原始代码。 无论您接下来想对文本进行什么(逐行)处理,您仍然可以在同一函数中进行。

,

在 Pandas 中,您只需要提供单个文件的路径,它就会为您处理 I/O 操作,不需要打开每个文件并将其传递给列表。

dask 与许多其他大型框架一样,可以接受对象目录并一次性读取它们。

来自docs

!ls data/*.csv | head

data/2000-01-01.csv
data/2000-01-02.csv
data/2000-01-03.csv
data/2000-01-04.csv
data/2000-01-05.csv
data/2000-01-06.csv
data/2000-01-07.csv
data/2000-01-08.csv
data/2000-01-09.csv
data/2000-01-10.csv

dd.read_csv('data/2000-*-*.csv')

在你的情况下,我认为它是

dd.read_csv('data/*.txt')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?