Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 74.2MB ·虚拟内存 1303.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
序列化用于Apache Spark的性能调优。通过网络发送或写入磁盘或持久存储在内存中的所有数据都应序列化。序列化在昂贵的操作中起着重要作用。
PySpark支持用于性能调优的自定义序列化程序。
PySpark支持以下两个序列化程序。
使用Python的Marshal Serializer序列化对象。此序列化程序比PickleSerializer更快,但支持更少的数据类型。
class pyspark.MarshalSerializer
使用Python的Pickle Serializer序列化对象。此序列化程序几乎支持任何Python对象,但可能不如更专业的序列化程序快。
class pyspark.PickleSerializer
让我们看一下PySpark序列化的例子。在这里,我们使用MarshalSerializer序列化数据。
--------------------------------------serializing.py------------------------------------- from pyspark.context import SparkContext from pyspark.serializers import MarshalSerializer sc = SparkContext("local", "serialization app", serializer = MarshalSerializer()) print(sc.parallelize(list(range(1000))).map(lambda x: 2 * x).take(10)) sc.stop() --------------------------------------serializing.py-------------------------------------
Command - 命令如下:
$SPARK_HOME/bin/spark-submit serializing.py
输出 - 上述命令的输出:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]