pythonsparkpickle_腌制Spark RDD并将其读入Python

我试图通过pickling来序列化Spark RDD,并将pickled文件直接读入Python.

a = sc.parallelize(['1','2','3','4','5'])

a.saveAsPickleFile('test_pkl')

然后我将test_pkl文件复制到我的本地.我怎样才能直接将它们读入Python?当我尝试正常的pickle包时,当我尝试读取’test_pkl’的第一个pickle部分时,它会失败:

pickle.load(open('part-00000','rb'))

Traceback (most recent call last):

File "", line 1, in

File "/usr/lib64/python2.6/pickle.py", line 1370, in load

return Unpickler(file).load()

File "/usr/lib64/python2.6/pickle.py", line 858, in load

dispatch[key](self)

File "/usr/lib64/python2.6/pickle.py", line 970, in load_string

raise ValueError, "insecure string pickle"

ValueError: insecure string pickle

我假设spark使用的酸洗方法与python pickle方法不同(如果我错了,请纠正我).有什么方法可以让我从Spark中腌制数据并直接从文件中读取这个pickle对象到python中吗?

解决方法:

with open("/path/to/file", "rb") as f:

print(sparkpickle.load(f))

标签:python,apache-spark,pickle,pyspark

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍关于使用Spark RDD进行快速数据处理的相关内容。 Spark是一个用于大规模数据处理的快速、通用的计算引擎,其提供了一个分布式的数据处理框架,可以在一个集群中进行并行计算。其中,RDD(Resilient Distributed Datasets)是Spark中最核心的概念之一,它是一种可并行处理的、容错的数据结构,可以将数据存储在集群中的多个节点上,实现数据的快速处理。 使用Spark RDD进行快速数据处理的步骤如下: 1. 创建RDD:可以通过SparkContext对象创建RDD,支持从本地文件系统、HDFS、HBase等数据源读取数据。 2. 转换操作:通过一系列的转换操作(如map、filter、reduce等),对RDD中的数据进行处理,生成新的RDD。 3. 操作执行:通过执行操作(如count、collect等),触发对RDD中的数据进行计算。 4. 缓存机制:Spark支持对RDD进行缓存,提高重复计算的效率。 使用Spark RDD进行快速数据处理的优点包括: 1. 高效性:Spark RDD支持并行计算,可以在多个节点上同时进行数据处理,大大提高了数据处理的效率。 2. 可扩展性:Spark可以在多个节点上进行分布式计算,可以轻松处理大规模数据集。 3. 容错性:Spark RDD支持数据的容错,当某一节点出现故障时,数据可以自动恢复。 希望这些内容能够帮助您了解关于使用Spark RDD进行快速数据处理的相关知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值