2017-06-14 6 views
1

dask.distributedの仕組みをよりよく理解したいと思います。私は以下のようにDaskデータフレームを読み込んだシンプルなcsvを持っています。この操作は正常に実行され、データフレームの長さを表す整数値を返します。これは予想される動作です。DaskについてDataFrame操作に関する分散動作

import dask.dataframe as dd 
gdf = dd.read_csv(filepath) 
len(gdf) 
# returns some int value 

しかし、私はdask.distributedからClientのインスタンスを導入したら、私は次のエラーを受け取る:ここ

distributed.utils - ERROR - 'LocalFileSystem' object has no attribute 'cwd' 

は例のコードブロックです:

from dask.distributed import Client 
import dask.dataframe as dd 
client_db = Client(remote_addr) 
gdf = dd.read_csv(filepath) 
len(gdf) 
# throws the above error 

私は混乱しています - Clientはインスタンス化された後、すべてのDask操作に「自分自身を注入する」かどうかを判断します。私はそのデータフレームの操作を管理するためにClient接続を尋ねるために、gdf = client_db.persist(gdf)のようなことをする必要があると思っていました。

ここで起こっていることに関するいくつかの状況は非常に高く評価されます。私はそれがWebソケット、長いポーリングなどを可能にするPyのWebフレームワークであるTornadoと関係があるトレースバックから見ることができます。私はそれが何かをどこかに格納しようとしていると仮定しています...しかし、ここから降りる。必要に応じて

、トレースバック:あなたはクライアントを作成するときに

Traceback (most recent call last): 
    File "/.../geopandas_opt/venv/lib/python3.6/site-packages/distributed/utils.py", line 223, in f 
    result[0] = yield make_coro() 
    File "/.../geopandas_opt/venv/lib/python3.6/site-packages/tornado/gen.py", line 1015, in run 
    value = future.result() 
    File "/.../geopandas_opt/venv/lib/python3.6/site-packages/tornado/concurrent.py", line 237, in result 
    raise_exc_info(self._exc_info) 
    File "<string>", line 3, in raise_exc_info 
    File "/.../geopandas_opt/venv/lib/python3.6/site-packages/tornado/gen.py", line 1021, in run 
    yielded = self.gen.throw(*exc_info) 
    File "/.../geopandas_opt/venv/lib/python3.6/site-packages/distributed/client.py", line 1156, in _gather 
    traceback) 
    File "/.../geopandas_opt/venv/lib/python3.6/site-packages/six.py", line 685, in reraise 
    raise value.with_traceback(tb) 
    File "/usr/local/lib/python3.5/site-packages/dask/bytes/core.py", line 212, in read_block_from_file 
    File "/usr/local/lib/python3.5/site-packages/dask/bytes/core.py", line 314, in __enter__ 
    File "/usr/local/lib/python3.5/site-packages/dask/bytes/local.py", line 64, in open 
    File "/usr/local/lib/python3.5/site-packages/dask/bytes/local.py", line 36, in _trim_filename 
AttributeError: 'LocalFileSystem' object has no attribute 'cwd' 

答えて

2

はい、それはデフォルトのグローバルスケジューラとして自身を登録します。あなたは、私はそれがバージョンの不一致であることを疑うに実行した例外についてset_as_default=キーワード

client = Client(..., set_as_default=False) 

でこの動作を回避することができます。 condaまたはpipのいずれかを使用してアップグレードすることをお勧めします。

conda install dask distributed 

または

pip install dask distributed 
関連する問題