【发布时间】:2017-02-06 11:32:44
【问题描述】:
我已经使用 JavaSparkContext 将 JavaRDD 编写为目标文件:
JavaSparkContext sc = new JavaSparkContext(conf); //where conf is a SparkConf
JavaRDD<MyClass> something;
something.saveAsObjectFile("path");
我可以使用以下方法轻松加载此文件:
JavaRDD<MyClass> loaded = sc.objectFile("path);
现在,在同一个程序中,我想加载目标文件并使用 SparkSession,以便从另一个文件创建 DataFrame,所以我正在使用:
SparkSession spark = SparkSession.builer()
.appName("someName")
.master("local")
.getOrCreate();
有没有办法使用spark 而不是JavaSparkContext 来加载目标文件?
我尝试在同一个程序中创建 JavaSparkContext 的实例,但出现错误:
SparkException:此 JVM 中只能运行一个 SparkContext(请参阅 SPARK-2243)。
我知道 SparkSession 封装了 SparkContext,但是我怎样才能做我想做的事情(在 Java 中)?有什么方法可以从 SparkSession 中获取 JavaSparkContext 吗?我可以使用另一种方式使用 SparkSession 而不是 JavaSparkContext 编写目标文件(我想将其保存为压缩文件而不是原始文本)?
【问题讨论】:
标签: java apache-spark rdd