使用Apache-Spark读取多个Pickle文件

时间:2015-07-06 03:23:28

标签: python apache-spark pickle

我现在正在学习Apache-Spark,我只是想知道我是否可以使用wholeTextFiles中的方法SparkContext()来读取格式为“.pkl”的多个文件。例如,

conf = SparkConf().setAppName("haha").setMaster("local")
sc = SparkContext(conf = conf)
temp = sc.wholeTextFiles("mydir/*.pkl")   ### The directory of Pickle files.

是否可以使用wholeTextFiles来阅读pickle文件?如果没有,有什么办法吗?如果有人帮助我,我真的很感激。

1 个答案:

答案 0 :(得分:0)

你可以尝试在python中解开数据,然后将它们转换为sc。

如python文档中所述:https://docs.python.org/3.0/library/pickle.html

pickle使用的数据格式是特定于Python的。这样做的优点是外部标准没有施加限制,例如XDR(不能代表指针共享);但这意味着非Python程序可能无法重建pickle Python对象。

默认情况下,pickle数据格式使用紧凑的二进制表示。模块pickletools包含用于分析pickle生成的数据流的工具。

目前有4种不同的协议可用于酸洗。

协议版本0是原始的ASCII协议,并且向后兼容早期版本的Python。 协议版本1是旧的二进制格式,它也与早期版本的Python兼容。 在Python 2.3中引入了协议版本2。它提供了更有效的新式类型的酸洗。 在Python 3.0中添加了协议版本3。它具有明确的字节支持,并且不能被Python 2.x pickle模块打开。这是当前推荐的协议,只要有可能就使用它。 有关协议2带来的改进的信息,请参阅PEP 307.有关pickle协议使用的操作码的广泛评论,请参阅pickletools的源代码。