Я пытаюсь перенести некоторый код 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
'D:\\test_data\*'
? - person rpanai   schedule 28.05.2019temp_file_path_str = file_path + item
temp_file_path_str = temp_file_path_str.replace('/', '\\')
- person dan   schedule 29.05.2019os.path.join
, так как это дает правильный путь для данной ОС. - person rpanai   schedule 29.05.2019