Учебники

PySpark — Сериализаторы

Сериализация используется для настройки производительности в Apache Spark. Все данные, которые отправляются по сети или записываются на диск или сохраняются в памяти, должны быть сериализованы. Сериализация играет важную роль в дорогостоящих операциях.

PySpark поддерживает пользовательские сериализаторы для настройки производительности. PySpark поддерживает следующие два сериализатора:

MarshalSerializer

Сериализует объекты, используя Python’s Marshal Serializer. Этот сериализатор работает быстрее, чем PickleSerializer, но поддерживает меньшее количество типов данных.

class pyspark.MarshalSerializer

PickleSerializer

Сериализует объекты с помощью Python 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-------------------------------------

Команда — Команда выглядит следующим образом —

$SPARK_HOME/bin/spark-submit serializing.py

Выходные данные — выходные данные вышеупомянутой команды —