Pyspark-serializers

提供:Dev Guides
移動先:案内検索

PySpark-シリアライザー

シリアル化は、Apache Sparkのパフォーマンスチューニングに使用されます。 ネットワーク経由で送信されるデータ、ディスクに書き込まれるデータ、またはメモリに保存されるデータはすべてシリアル化する必要があります。 シリアル化は、コストのかかる操作で重要な役割を果たします。

PySparkは、パフォーマンスチューニングのためにカスタムシリアライザーをサポートしています。 次の2つのシリアライザーはPySparkでサポートされています-

MarshalSerializer

PythonのMarshal Serializerを使用してオブジェクトをシリアル化します。 このシリアライザーはPickleSerializerよりも高速ですが、サポートするデータ型の数は少なくなります。

class pyspark.MarshalSerializer

PickleSerializer

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-------------------------------------

コマンド-コマンドは次のとおりです-

$SPARK_HOME/bin/spark-submit serializing.py

出力-上記のコマンドの出力は-

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