火花坚持和不坚持

时间:2020-02-10 10:21:51

标签: apache-spark

 Dataset<Row> Data_one = spark.read().format("csv").option("header","true").load("src/main/resources/exams/students.csv");
        System.out.println("Before persist");
        Data_one.show();
        Data_one.persist(StorageLevel.MEMORY_ONLY());
        System.out.println("After persist");
        Data_one.show();
        Data_one.unpersist();
        System.out.println("After unpersist");
        Data_one.show();

即使不存在,数据框仍在打印。 只是当数据帧无法持久时才感到困惑。

1 个答案:

答案 0 :(得分:0)

数据框将始终被打印。 Persist只是将其缓存在内存中。 当在数据帧上调用任何评估操作,例如showhead等时,将始终计算结果。

持久状态和持久状态之间的区别如下: 当数据帧在某点持久存在时,将从内存中读取临时结果。如果不是,则重新计算所有操作。

在这种特殊情况下,“非持久”之后,“持久化之后”应该花费更少的时间来打印数据框