Sur*_*mar 2 java apache-spark rdd
我创建了一个 RDD,下面是我的程序。
public static void main(String[] args) throws JSONException, IOException, InterruptedException {
SparkConf conf1 = new SparkConf().setAppName("SparkAutomation").setMaster("local");
app.run(conf1);
}
private void run(SparkConf conf) throws JSONException, IOException, InterruptedException {
JavaSparkContext sc = new JavaSparkContext(conf);
getDataFrom(sc);
sc.stop();
}
void getDataFrom(JavaSparkContext sc) throws JSONException, IOException, InterruptedException {
JavaRDD<String> Data = sc.textFile("/path/to/File");
}
Run Code Online (Sandbox Code Playgroud)
我想在应用程序的其他部分使用上面创建的 RDD,我必须停止上下文,我需要创建另一个 Context,并将在那里使用上面的 RDD。我的问题是,如果我将 RDD 坚持到 Memory ,我能使用它吗?
Data.persist(StorageLevel.MEMORY_ONLY());
Run Code Online (Sandbox Code Playgroud)
或者我是否必须将其保存到磁盘。
Data.persist(StorageLevel.DISK_ONLY());
Run Code Online (Sandbox Code Playgroud)
如果您需要重新启动 Spark 上下文,您将无法在任何一种情况下重用该 RDD。RDD.persist
在 Spark 上下文之外无法访问持久化的内容。每个 RDD 都专门绑定到一个单独的 Spark 上下文。
如果您想停止上下文并开始一个新的上下文,请考虑使用类似的东西持久化到底层数据存储RDD.saveAsTextFile("/saved/rdd/path")
,然后使用sc.textFile("/saved/rdd/path")
.
归档时间: |
|
查看次数: |
1089 次 |
最近记录: |