我想将本地文件读入spark。我正在使用Windows。使用以下命令:
input = sc.textFile("D://sample.txt")
我尝试了所有可能的组合,但不断得到以下或非常类似的错误。
我尝试了以下内容:
添加file:///和file://
添加文件:\\和文件:\
d:/sample.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时,我们是否始终在命令行中使用反斜杠?或者只是目录?
非常感谢, cobby
答案 0 :(得分:2)
你能试试os.path.normpath吗
import os
input = sc.textFile(os.path.normpath("D:/sample.txt"))
<强> os.path.normpath(路径)强>
通过折叠冗余分隔符和向上级别来规范化路径名 参考使得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