开发手册 欢迎您!
软件开发者资料库

PySpark - Serializers

PySpark Serializers - 从简单和简单的步骤学习PySpark,从基本到高级概念,包括简介,环境设置,SparkContext,RDD,广播和累积器,SparkConf,SparkFiles,StorageLevel,MLlib,Serializers。

序列化用于Apache Spark的性能调优.通过网络发送或写入磁盘或持久存储在内存中的所有数据都应序列化.序列化在昂贵的操作中起着重要作用.

PySpark支持用于性能调优的自定义序列化程序. PySpark支持以下两个序列化器 :

MarshalSerializer

使用Python的Marshal Serializer序列化对象.此序列化器比PickleSerializer更快,但支持更少的数据类型.

  class pyspark.MarshalSerializer

PickleSerializer

使用Python的Pickle Serializer序列化对象.这个序列化程序几乎支持任何Python对象,但可能没有更专业的序列化程序那么快.

  class pyspark.PickleSerializer

让我们看一下PySpark序列化的例子.在这里,我们使用MarshalSerializer序列化数据.

------------------------ -------------- serializing.py --------------------------------- ----来自pyspark.context的from pyspark.context import SparkContextfrom pyspark.serializers import MarshalSerializersc = SparkContext("local", "serialization app", serializer = MarshalSerializer())print(sc.parallelize(list(range(1000))).map(lambda x: 2 * x).take(10))sc.stop() ------ -------------------------------- serializing.py --------------- ----------------------

命令 : 该命令如下 :

  $ SPARK_HOME/bin/spark-submit serializing.py

输出 : 上述命令的输出是 :

  [0,2,4,6,8,10,12,14,16,18 ]