什么是interpreter-aware SparkContext?Spark官方文档相关疑问
什么是interpreter-aware SparkContext
官方文档中提到的相关内容如下:
在Spark shell中,已为你预先创建了一个特殊的interpreter-aware SparkContext,对应的变量名为sc。
这个是Spark交互式命令行(REPL)特有的优化实现,具体含义可以拆分理解:
- 基础的
SparkContext是所有Spark应用的核心入口对象,负责对接集群资源管理器、申请计算资源、调度任务执行、管理中间数据存储等,所有Spark计算逻辑都要基于这个对象提交运行。 - 前缀interpreter-aware直译为「感知解释器」,指这个SparkContext是专门为适配shell的交互式解释器场景定制的,和普通应用中用户手动创建的SparkContext相比做了很多专属适配:
- 无需用户手动编写初始化配置代码,启动Spark shell后就会自动完成创建,用户直接用预置的
sc变量就能提交计算任务,大幅降低交互式调试的门槛 - 能够和解释器的运行状态实时同步,可以动态识别用户在shell中实时输入定义的变量、函数、类,自动处理代码序列化、依赖分发逻辑,避免普通SparkContext在REPL场景下容易出现的类加载失败、节点依赖缺失等问题
- 适配了交互式场景的特殊需求,比如任务状态实时打印到shell控制台、动态调整使用的资源配额、支持热加载用户新增的依赖包等,提升交互式使用的体验
- 无需用户手动编写初始化配置代码,启动Spark shell后就会自动完成创建,用户直接用预置的
内容的提问来源于stack exchange,提问作者Dave Prateek
相关产品推荐
相关产品推荐

