Dask выдает ошибку filenotfounderror при чтении csv / отлично работает в Pandas

Я пытаюсь перенести некоторый код Pandas в Dask и столкнулся с проблемой при чтении csv — кажется, что Dask добавляет локальный рабочий каталог к ​​пути к файлу в операции чтения. Он отлично работает, когда я читаю с помощью Pandas.

Я использую Windows 10. Рабочий каталог находится на моем диске C; данные находятся на моем диске D.

Код панды:

import pandas as pd

file_path = 'D:/test_data/'
item = filename.csv
temp_df = pd.read_csv(file_path + item, usecols=['time', 'ticker_price'])

Вывод печати (temp_df.head()):

                         time  ticker_price
0  2019-05-15 09:34:09.233373       0.02843
1  2019-05-15 09:34:11.334135       0.02843
2  2019-05-15 09:34:12.147282       0.02843
3  2019-05-15 09:34:13.705145       0.02843
4  2019-05-15 09:34:14.521257       0.02843
type = <class 'pandas.core.frame.DataFrame'>

Даск код:

import dask.dataframe as dd

file_path = 'D:/test_data/'
item = filename.csv
temp_dd = dd.read_csv(file_path + item, usecols=['time', 'ticker_price'])

Вывод печати (temp_dd.head()):

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Dan\\PycharmProjects\\project1_folder/D:/test_data/filename.csv'

Похоже, Dask добавляет file_path к моим данным на диске D к пути к моему локальному рабочему каталогу (папке PycharmProjects), а Pandas — нет. Есть ли решения для этого?

Несколько вещей, которые я пробовал, не сработали:

(1)

temp_file_path_str = pathlib.Path(file_path + item)
temp_dd = dd.read_csv(temp_file_path_str, usecols=['time', 'ticker_price'])

Это возвращает ту же ошибку:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Dan\\PycharmProjects\\project1_folder/D:\\test_data\\filename.csv'

(2)

temp_file_path_str = 'file://' + file_path + item
temp_dd = dd.read_csv(temp_file_path_str, usecols=['time', 'ticker_price'])

Это возвращает ошибку, которая предполагает, что Dask удалил идентификатор диска из пути:

FileNotFoundError: [WinError 3] The system cannot find the path specified: '\\test_data\\filename.csv'

(3)

temp_file_path_str = 'file://' + file_path + item
temp_file_path_str = pathlib.Path(temp_file_path_str)
temp_dd = dd.read_csv(temp_file_path_str, usecols=['time', 'ticker_price'])

Кажется, это добавляет дополнительный \ перед идентификатором диска в пути:

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: '\\D:\\test_data\\filename.csv'

Обновление от 01.06.19. Для этого я создал задачу: https://github.com/dask/dask/issues/4861


person dan    schedule 26.05.2019    source источник
comment
Я ошибаюсь или ваш путь в Windows должен быть 'D:\\test_data\*'?   -  person rpanai    schedule 28.05.2019
comment
Спасибо, @rpanai. Странно, что то, как я назвал файл, отлично работало в Pandas, но в любом случае я решил эту проблему следующим образом: temp_file_path_str = file_path + item temp_file_path_str = temp_file_path_str.replace('/', '\\')   -  person dan    schedule 29.05.2019
comment
Иногда лучше использовать os.path.join, так как это дает правильный путь для данной ОС.   -  person rpanai    schedule 29.05.2019
comment
Обновление/исправление - я не решил проблему с Dask. Я работаю над проблемой, читая csv с помощью Pandas, а затем преобразовывая кадры данных Pandas в Dask с помощью функции from_pandas.   -  person dan    schedule 30.05.2019
comment
Если вы считаете, что это ошибка, я рекомендую поднять вопрос на GitHub.   -  person MRocklin    schedule 02.06.2019
comment
Спасибо всем. Я открыл вопрос на GitHub (github.com/dask/dask/issues/4861), который я сейчас закрыл. Ошибка возникла из-за того, что распределенный рабочий процесс попытался прочитать файл. Ответ здесь помог решить мою проблему: stackoverflow.com/questions/50987030/ Странный путь к файлу, используемый в трассировке, кажется, был отвлекающим маневром.   -  person dan    schedule 04.06.2019