我正在使用 PySpark 2.1.1,并尝试在使用 Spark Submit 时设置序列化器。在我的应用程序中,我按如下方式初始化 SparkSession.builder
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()
我收到以下错误
java.lang.ClassNotFoundException: PickleSerializer
初始化序列化器的正确方法是什么?我意识到 Pickle 是默认的,但我想知道我是否也使用其他受支持的序列化器之一。
spark.serializer
用于设置Java序列化器。对于 Python 序列化器使用serializer
的论证SparkContext
from pyspark.serializers import PickleSerializer
conf = SparkConf().set(...)
sc = SparkContext(conf=conf, serializer=PickleSerializer())
Once SparkContext
准备好了你可以用它来初始化SparkSession
明确地:
spark = SparkSession(sc)
spark.sparkContext is sc
## True
或隐含地(它将使用SparkContext.getOrCreate):
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
spark.sparkContext is sc
## True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)