首页 > 解决方案 > 如何从标准输入读取 dask 数据帧?

问题描述

对于 dask 数据框,我想sys.stdin作为输入

dask.dataframe.read_csv(sys.stdin, sep=" ", header=None)

但是, dask.dataframe 只接受文件路径/路径作为输入,所以它给出了一个错误。
有没有办法用 dask 从 stdin 读取而不必将整个 stdin 保存到文件中?

在这里,一个非常大的文件的内容作为输入被传送到 python 程序。

标签: python-3.xpandasdata-sciencedaskdask-dataframe

解决方案


在这种情况下的附加值dask尚不清楚,因为大概stdin足够小以适合内存(如果不是,那么有趣的是为什么不持久化数据)。无论如何,这是一种可能的工作流程:

import sys
import pandas as pd
import dask.dataframe as dd

df = pd.read_csv(sys.stdin, sep=" ", header=None)
ddf = dd.from_pandas(df, npartitions=10) # adjust as appropriate

推荐阅读