在执行程序上访问 SparkSession 会引发错误

我的代码流程如下所示。 get_row_group_info(path) 部分在执行程序上执行。我有一些逻辑来记录一些数据点。运行流程会引发错误:

SparkSession._activeSession.sparkContext\
AttributeError: 'NoneType' object has no attribute 'sparkContext'
def logger(mssg):
    from pyspark.sql import SparkSession

    SparkSession._activeSession.sparkContext\
    ._jvm.com.package.logInfoEvent(msg)

def get_file_system():
    #some logging logic
    logger.logInfo("Triggered")
    return fs

def get_row_group_info(path):
    fs = get_file_system()
    relative_path = os.path.relpath(path,base_path)
    pq_file = fs.open(path)
    num_row_groups = pq.read_metadata(pq_file).num_row_groups
    pq_file.close()
    return relative_path,num_row_groups

row_groups = spark_context.parallelize(paths,len(paths)) \
    .map(get_row_group_info) \
    .collect()

感谢任何帮助。

zhuzhu1107 回答:在执行程序上访问 SparkSession 会引发错误

以下是从活动 SparkSession 获取 SparkContext 的方法:

  1. 对于 Spark 版本

    SparkSession.builder.getOrCreate().sparkContext

  2. 对于 spark 版本 >= 3.0.0

    SparkSession.getActiveSession().sparkContext // doc

本文链接:https://www.f2er.com/1505.html

大家都在问