Spark [Python] - 在Windows中读取本地文件

3

我想将本地文件读入 Spark 中。我使用的是 Windows 操作系统。使用以下命令:

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

我尝试了各种可能的组合,但一直出现以下或非常相似的错误。
我尝试了以下操作:
  • 添加 file:/// 和 file://

  • 添加 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


你能否尝试一下 "sample.txt"? - Ajay Gupta
好的,那么出了什么错误?到目前为止,你展示的只是一条普通的日志。 - zero323
仅仅是样例.txt不起作用。错误是,我对于textField()每个参数都得到了相同的日志记录。 - cobby
即使我尝试从Apache Spark教程中使用“input = sc.textField(“README.md”)”, - cobby
1个回答

2

你可以试试使用os.path.normpath函数。

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

该函数用于规范化路径名,通过折叠冗余的分隔符和上一级引用,使得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


不幸的是它不起作用 :( 由于没有任何东西起作用,似乎更像是配置问题。非常感谢您提供的建议。 - cobby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接