如何为SparkContext.textFile()指定Windows系统下的文件目录?
Windows 10下Spark本地文件路径说明
关于C:\SpikeCourse转换为file:///SparkCourse/ml-100k/u.data的原因
Spark采用URI格式定位文件,这套规则脱胎于Unix系统的路径逻辑,在Windows下需要做适配:
file:///是本地文件协议的固定前缀,前两个斜杠是协议标识file://,第三个斜杠对应本地文件系统的根目录起点。- 代码里的写法能生效,是因为你的Spark程序运行时的当前工作目录正好是C:\SpikeCourse,此时省略盘符后,Spark会自动使用当前运行所在的盘符(C盘)来补全路径。
- 更严谨的完整写法应该是
file:///C:/SpikeCourse/ml-100k/u.data:把Windows路径里的反斜杠\替换为正斜杠/,保留盘符后的冒号,再拼接协议前缀即可。
文件在E盘时的路径写法
如果目标文件在E盘,直接按照完整URI格式写就行:
假设文件实际路径是E:\SpikeCourse\ml-100k\u.data,对应的Spark代码写法为:
lines = sc.textFile("file:///E:/SpikeCourse/ml-100k/u.data")
如果你的程序运行时的当前工作目录已经是E:\SpikeCourse,也可以用更简洁的相对路径:
lines = sc.textFile("ml-100k/u.data")
内容的提问来源于stack exchange,提问作者user20551429
相关产品推荐
相关产品推荐

