从SparkSession获取JavaSparkContext
我正在使用从SparkSession获取JavaSparkContext,java,apache-spark,Java,Apache Spark,我正在使用SparkSession运行spark应用程序,因为我使用了很多spark sql功能。我想使用JavaSparkContext从列表中创建RDD。但是通过会话,我只能得到一个普通的SparkContext。有没有办法在这个方向上转换上下文 确定SparkContext后,您可以使用: SparkContext sc = ... JavaSparkContext jsc = JavaSparkContext.fromSparkContext(sc); 这将返回JavaSparkCon
SparkSession
运行spark应用程序,因为我使用了很多spark sql功能。我想使用JavaSparkContext
从列表中创建RDD。但是通过会话,我只能得到一个普通的SparkContext
。有没有办法在这个方向上转换上下文 确定SparkContext
后,您可以使用:
SparkContext sc = ...
JavaSparkContext jsc = JavaSparkContext.fromSparkContext(sc);
这将返回
JavaSparkContext
的新实例,但只要您只维护SparkContext
的一个活动实例,就没有问题了。是的,您可以通过spark会话这样做:
val spark = SparkSession.builder()
.config(sparkConf)
.getOrCreate()
val jsc = new JavaSparkContext(spark.sparkContext)
或者在java中,它将是:
SparkSession spark = SparkSession.builder().config(sparkConf).getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
注意:对于使用sonar的用户:S2095希望在使用new创建时关闭JavaSparkContext。只需使用
JavaSparkContext.fromSparkContext(sc)
即可