首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果通过星火提交提交作业,我们是否可以使用星火会话对象而不显式地创建它?

如果通过星火提交提交作业,我们是否可以使用星火会话对象而不显式地创建它?
EN

Stack Overflow用户
提问于 2017-09-12 09:52:34
回答 1查看 2.2K关注 0票数 4

我的问题非常基本,我的代码运行良好。但我不清楚这两点:

1)当我们提交任何使用火花-提交的工作时,我们是否需要像这样创建火花会话对象?在我的剧本里:

代码语言:javascript
复制
from pyspark.sql import SparkSession,SQLContext
from pyspark.conf import SparkConf
spark = SparkSession \
    .builder \
    .enableHiveSupport() \
    .appName("test") \
    .getOrCreate()
print(spark)
sqlContext = SQLContext(spark)

或者我可以直接访问脚本中的session对象,而不需要创建它。

代码语言:javascript
复制
from pyspark.sql import SparkSession,SQLContext
from pyspark.conf import SparkConf
print(spark) -- this can be ***sc*** not sure I am using spark-2
sqlContext = SQLContext(spark)

如果火花会话对象可用,那么我如何添加配置属性,比如下面,或者如何启用hive支持。

代码语言:javascript
复制
spark = SparkSession \
.builder \
.enableHiveSupport() \
.config(conf=SparkConf().set("spark.driver.maxResultSize", "2g")) \
.appName("test") \
.getOrCreate() 

2)另一种方法是不使用submit,我可以编写python代码来生成火花-会话对象,并像this一样使用它。

我的怀疑是,如果我提交工作使用火花提交和创建火花会话对象,如上文所述,我是否最终创建了两个火花会话?

如果有人能解释我在第二步中使用火花提交方法的额外优势,那将是非常有帮助的。如果我使用命令行中的星火提交调用作业,是否需要创建星火会话对象?

EN

回答 1

Stack Overflow用户

发布于 2017-09-12 14:45:58

当我们提交任何pySpark作业使用火花提交,我们需要创建火花会话对象吗?

是的,它不是只需要在shell的情况下使用。

我的疑问是,如果我提交作业使用火花提交和创建火花会话对象,如上面提到的,我最终创建两个火花会话

TL,DR;否

如果我们检查你写的代码

代码语言:javascript
复制
spark = SparkSession \
  .builder \
  .enableHiveSupport() \
  .config(conf=SparkConf().set("spark.driver.maxResultSize", "2g")) \
  .appName("test") \
  .getOrCreate() 

观察getOrCreate(),它将在任何时候只处理一个SparkSession Object (spark)。

我建议在本地创建上下文/会话,并使代码纯净(因为不依赖于对象的其他来源)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46173262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档