2016-01-21 1 views
0

У меня есть этот код, в котором я пишу в CSV-файл на локальной файловой системе, но я получаю сообщение об ошибке, как - IOError: [Errno 2] No such file or directory: 'file:///folder1/folder2/output.csv'Как записать в файл CSV в локальной файловой системе, используя PySpark

columns = [0,1,2,3,4,5,6,7,8,9] 
data1 = rdd1.map(lambda row: [row[i].encode("utf-8") for i in columns]) 
data1_tuple = data1.map(tuple) 

with open("file:///folder1/folder2/output.csv", "w") as fw: 
    writer = csv.writer(fw, delimiter = ';') 
    for (r1, r2) in izip(data1_tuple.toLocalIterator(), labelsAndPredictions.toLocalIterator()): 
     writer.writerow(r1 + r2[1:2]) 

На моей локальной файловой системе существует следующий каталог: /folder1/folder2/. Почему это бросает эту ошибку и как я могу написать файл csv в локальном файле в конкретном каталоге?

+0

Проверьте, есть ли у вас разрешение на запись этой папки? – xuanyue

+1

'open' не принимает URI, который' file: /// ... 'is, вам необходимо указать путь, например. ' '/ Folder1/folder2/output.csv'' – AChampion

ответ

1

path аргумент ОТКРЫТО

строкой или байты объекта дает полный путь (абсолютный или относительно текущего рабочего каталога) файла, который будет открыт или целочисленный файл дескриптора файла будет обернутый

не URI. Это означает, что ваш код должен выглядеть следующим образом:

with open("/folder1/folder2/output.csv", "w") as fw: 
    writer = csv.writer(fw, delimiter = ';') 
    ... 
Смежные вопросы