2017-12-07 17 views
1

PySpark 2.1.1を使用していて、Spark Submitを使用するときにシリアライザを設定しようとしています。私は次のエラーPySpark BuilderでPySparkシリアライザを設定する

java.lang.ClassNotFoundException: PickleSerializer 

シリアライザを初期化するための正しい方法は何を取得しています

print("creating spark session") 
spark = SparkSession.builder.master("yarn").appName("AppName").\ 
config("driver-library-path","libPath")).\ 
config("driver-java-options",driverJavaOptions).\ 
enableHiveSupport().\ 
config("deploy-mode","client").\ 
config("spark.serializer","PickleSerializer").\ 
config("spark.executor.instances",100).\ 
config("spark.executor.memory","4g").\ 
getOrCreate() 

を次のように私のアプリケーションでは、私はSparkSession.builderを初期化?私はPickleがデフォルトであることを認識していますが、他のサポートされているシリアライザも使用しているかどうかを知りたいと思います。

答えて

0

spark.serializerは、Javaシリアライザの設定に使用されます。 PythonのシリアライザはSparkContextたらSparkContext

from pyspark.serializers import PickleSerializer 

conf = SparkConf().set(...) 
sc = SparkContext(conf=conf, serializer=PickleSerializer()) 

serializer引数を使用するためには、明示的にSparkSessionを初期化するためにそれを使用することができます準備ができている:

spark = SparkSession(sc) 
spark.sparkContext is sc 

## True 

または暗黙的に(it will use SparkContext.getOrCreate):

spark = SparkSession.builder.enableHiveSupport().getOrCreate() 
spark.sparkContext is sc 

## True 
関連する問題