2017-10-15 13 views
1

大きなデータセットをインポートしてマージする必要があります。私はこれに類似した他の質問を知っていますが、私の問題に固有の答えを見つけることができませんでした。 daskで大きなデータセットをデータフレームに読み込むことはできましたが、別のデータフレームとマージすることはできませんでした。Python - csvファイルからインポートされた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のデータフレームをマージすることはできませんが、私はこれをどのように他を行うことができますことは明らかですか? pySparkやその他の方法を使用できますか?

+3

私はdaskについてよく分かりませんが、 'pd.merge()'ではなく 'dd.merge()'が必要だと思いますか? – JohnE

答えて

3

@ JohnEが正しい - Daskデータフレームはメソッドを持っていますが、これは偶然にもpandas oneと非常によく似ています。あなたは、内側のマージを必要とするように見えるので、そう、あなたは単に実行する必要があります。

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

DASK from_pandasmethodも有用であるかもしれない、場合にあなたがパンダのものにDASKのデータフレームを変換したいです。

関連する問題