Python - 合并从csv文件导入的Dask数据帧

时间:2017-10-15 17:24:12

标签: python pandas dataframe pyspark dask

我需要导入大型数据集并合并它们。我知道有其他类似的问题,但我找不到特定于我的问题的答案。看来,使用dask,我能够将大型数据集读入数据帧,但我无法将其与其他数据帧合并。

import dask.dataframe as dd
import pandas as pd

#I have to do this with dask since with pandas I get mem issue and kills the python
ps = dd.read_csv('*.dsv',sep='|',low_memory=False)
mx = dd.read_csv('test.csv',sep='|',low_memory=False)

# this is where I get the error
mg = pd.merge(ps,mx,left_on='ACTIVITY_ID',right_on='WONUM')

ValueError: can not merge DataFrame with instance of type <class 'dask.dataframe.core.DataFrame'>

很明显,它无法将dask数据帧与pandas数据帧合并,但我怎么能这样做呢?我可以使用pySpark或任何其他方法吗?

1 个答案:

答案 0 :(得分:3)

@JohnE是对的 - Dask数据帧有一个merge方法,它(非巧合)与pandas one非常相似;所以,既然你似乎需要一个内部合并,你应该这样做:

mg = ps.merge(mx,left_on='ACTIVITY_ID',right_on='WONUM') # how='inner' by default, just as in pandas

如果您想将Dask数据帧转换为pandas数据帧,则Dask from_pandas method也可能有用。