【发布时间】:2020-03-16 11:56:36
【问题描述】:
我一直在尝试从 pickle 文件中加载数据,以便在 Windows 上与 pySpark 一起使用
这是我的代码:
import subprocess
import pickle
proc = subprocess.Popen(["cat", "./users-partition.pickle"],
stdout=subprocess.PIPE)
pickle_content = proc.communicate()[0]
partition = pickle.loads(pickle_content)
len(partition)
我已经在网上搜索了几个小时来完成这项工作,但仍然没有运气。 错误信息(第 3 行)是:
FileNotFoundError: [WinError 2] The system cannot find the file specified
尝试了各种文件,肯定都在当前工作目录中。 将不胜感激任何帮助!谢谢!!
【问题讨论】:
-
看起来您在 Windows 上。你的
%PATH%上有一个名为cat.exe的程序吗? -
另外,你为什么要尝试运行一个子进程来 cat 一个泡菜文件?
-
1.检查并发现路径变量2中没有这样的值。它是大数据analisys课程家庭作业的py脚本的一部分,只是真正遵循脚本
-
@VictorMartinov 你应该用
open()打开泡菜文件然后read()它,或者pickle.load(open("./users-partition.pickle", "rb")) -
@BrianCain 谢谢,
pickle.load(open("./users-partition.pickle", "rb"))命令似乎可以正常工作!我猜原始脚本假定操作系统是 linux,这就是它不起作用的原因(Windows 上没有“cat”命令)。
标签: python python-3.x subprocess pickle popen