首页 > 解决方案 > 触发多个 CSV 读取?

问题描述

在我的 spark 应用程序中,我曾经读过一个包含许多 CSV 的目录。但是,在 DAG 中,我看到了多个 CSV 读取。

火花用户界面截图: 在此处输入图像描述

标签: apache-sparkpyspark

解决方案


如果 DataFrame 未缓存,Spark 将多次读取它们。


    val df1 = spark.read.csv("path")
    val df2_result = df1.filter(.......).save(......)
    val df3_result = df1.map(....).groupBy(...).save(......)

这里 df2_result 和 df3_result 都将导致 df1 从 csv 文件重建。为避免这种情况,您可以像这样缓存。DF1 将从 csv 构建一次,第二次将不会从文件构建。


    val df1 = spark.read.csv("path")
    df1.cache()
    val df2_result = df1.filter(.......).save(......)
    val df3_result = df1.map(....).groupBy(...).save(......)


推荐阅读