2015-10-27 9 views
2

Я хочу прочитать локальный файл в искры. Я использую Windows. С помощью следующей команды:Spark [Python] - Чтение локального файла в Windows

input = sc.textFile("D://sample.txt") 

Я пробовал все возможные комбинации, но постоянно получаю следующую или очень похожую ошибку.

Я попробовал следующее:

  • добавления файла: /// и файл: //

  • добавления файла: \\ и файл: \

  • D:/образец .txt

  • D: \ sample.txt

  • D: \ sample.txt

Текущий рабочий каталог D: \ и файл существует на D: \

Любой идея?

>>> input = sc.textFile("D://sample.txt") 
15/10/27 02:37:37 INFO MemoryStore: ensureFreeSpace(157288) called with curMem=7 
891904, maxMem=556038881 
15/10/27 02:37:37 INFO MemoryStore: Block broadcast_46 stored as values in memor 
y (estimated size 153.6 KB, free 522.6 MB) 
15/10/27 02:37:37 INFO MemoryStore: ensureFreeSpace(14276) called with curMem=80 
49192, maxMem=556038881 
15/10/27 02:37:37 INFO MemoryStore: Block broadcast_46_piece0 stored as bytes in 
memory (estimated size 13.9 KB, free 522.6 MB) 
15/10/27 02:37:37 INFO BlockManagerInfo: Added broadcast_46_piece0 in memory on 
localhost:52887 (size: 13.9 KB, free: 529.6 MB) 
15/10/27 02:37:37 INFO SparkContext: Created broadcast 46 from textFile at null: 
-1 

Кроме того, мы всегда используем обратную косую черту в командной строке при использовании Windows? Или это просто для каталогов?

Спасибо большое, низкорослым

+0

Вы можете просто попробовать "sample.txt"? –

+0

ОК, так в чем же ошибка? То, что вы показали до сих пор, - это обычный журнал. – zero323

+0

только образец.txt не будет работать. Ошибка в том, что я получаю один и тот же журнал для каждого аргумента textField() – cobby

ответ

2

Можете ли вы дать os.path.normpath попробовать

import os 
input = sc.textFile(os.path.normpath("D:/sample.txt")) 

os.path.normpath (путь)

Нормализовать путь к файлу, свернув избыточные сепараторы и up-level , так что A // B, A/B /, A /./ B и A/foo /../ B все становятся A/B. Эта манипуляция строк может изменить значение пути, которое содержит символические ссылки. В Windows он преобразует косые черты в обратные косые черты. Чтобы нормализовать регистр, используйте normcase().

Источник: https://docs.python.org/2/library/os.path.html#os.path.normpath

+0

, к сожалению, он не работает :(ничего не работает, это больше похоже на проблему с конфигурацией. Идеи были бы высоко оценены. – cobby

 Смежные вопросы

  • Нет связанных вопросов^_^