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]