2017-12-07 3 views
1

PySpark 2.1.1을 사용 중이며 Spark Submit를 사용할 때 시리얼 라이저를 설정하려고합니다. 나는 다음과 같은 오류PySpark Builder에서 PySpark Serializer를 설정하십시오.

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이 기본값이라는 것을 알지만 다른 지원되는 serializer 중 하나를 사용하는지 알고 싶습니다.

답변

0

spark.serializer은 Java 직렬 변환기를 설정하는 데 사용됩니다. 암시 적

spark = SparkSession(sc) 
spark.sparkContext is sc 

## True 

또는 (it will use SparkContext.getOrCreate을) :

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

## True 
SparkContext가 준비되면 파이썬 시리얼 라이저를 들어 사용자가 명시 적으로 SparkSession를 초기화하는 데 사용할 수 있습니다 SparkContext

from pyspark.serializers import PickleSerializer 

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

serializer 인수를 사용