首页 > 解决方案 > 使用 SparkConf 创建 SparkSession 对象时出现问题

问题描述

我是 Spark 的新手,需要一些关于以下问题的指导 - 每当我尝试使用 SparkConf 对象创建 SparkSession 对象时,我都会收到以下错误 -

AttributeError:“SparkConf”对象没有属性“_get_object_id”

我在本地模式下使用 Spark 2.3 和 Python 3.7。

sconf=SparkConf.setAppName("test")
ss=SparkSession.builder.config(conf=sconf).getOrCreate()

我已经阅读了互联网上提供的一些解决方案,但没有一个解决了我的问题。

即使我尝试直接创建 SparkSession 对象,即没有明确的 SparkConf 对象,我也会遇到同样的错误 -

ss=SparkSession.builder.master("local").getOrCreate()

AttributeError: 'SparkConf' object has no attribute '_get_object_id'

标签: pythonapache-sparkpysparkpyspark-sql

解决方案


不要创建新的 SparkConf() 对象:它将是一个 python 对象,显然与 Spark 的非 python 部分不兼容(它没有强制的 _get_object_id() 方法,如错误消息所示)。

构建器的 config() 方法是累积的,所以你应该这样做:

ss = SparkSession \
    .builder \
    .appName("test") \
    .config("some.parameter", "some.value") \
    .config("some.other.parameter", "some.other.value") \ 
       etc...
    .getOrCreate()

推荐阅读