如何在Kedro IPython会话中获取Kedro管理的Spark Session
获取Kedro管理的Spark会话
以下两种方法可直接获取Kedro根据spark.yml配置创建的Spark会话:
方法1:从已加载的Spark数据集提取会话
当你通过catalog.load()加载Spark数据集后,可直接从数据集对象中获取Kedro管理的会话:
test = catalog.load("mydata@spark") spark = test._spark_session # 验证配置是否生效 print(spark.conf.get('spark.driver.maxResultSize')) # 应返回你在spark.yml中定义的值
方法2:直接从Catalog获取数据集对应的会话
如果不需要加载数据,可直接从Catalog中获取SparkDataSet实例并提取会话:
dataset = catalog._get_dataset("mydata@spark") spark = dataset._spark_session
关键说明
SparkSession.builder.getOrCreate()会创建一个独立于Kedro的默认Spark会话,不会读取你项目中spark.yml的配置,因此会出现配置项找不到的异常。而上述方法获取的是Kedro根据项目配置初始化的会话,完全匹配你在spark.yml中定义的参数。
内容的提问来源于stack exchange,提问作者gaut
相关产品推荐
相关产品推荐

