Apache spark 尽管缓存了输入df,但仍存在Spark流性能问题
我使用的是spark dstream方法。我有一个输入RDD,我一读就缓存它Apache spark 尽管缓存了输入df,但仍存在Spark流性能问题,apache-spark,apache-spark-sql,spark-streaming,apache-spark-2.0,Apache Spark,Apache Spark Sql,Spark Streaming,Apache Spark 2.0,我使用的是spark dstream方法。我有一个输入RDD,我一读就缓存它 val cachedDf = rdd .repartition(200) .persist(StorageLevel.MEMORY_AND_DISK).toDF() 我还看到输入rdd被缓存在spark应用程序UI的存储选项卡中。我的卡夫卡主题有15个分区 但是,在缓存的数据帧上执行每个操作之后,我会看到15个任务在我的应用程序中多次运行(不仅仅是在第一个操作之后,
val cachedDf = rdd
.repartition(200)
.persist(StorageLevel.MEMORY_AND_DISK).toDF()
我还看到输入rdd被缓存在spark应用程序UI的存储选项卡中。我的卡夫卡主题有15个分区
但是,在缓存的数据帧上执行每个操作之后,我会看到15个任务在我的应用程序中多次运行(不仅仅是在第一个操作之后,每次操作之后),这从长远来看会降低我的应用程序的速度
这些任务运行2-3分钟,并随着每批处理的邮件数的增加而增加
我不明白的是,如果我重新划分数据帧并立即将其持久化,那么运行的15个任务是什么
每隔一个主要任务有200个子任务,在这15个子任务中读到了什么
我的申请书又读卡夫卡的了吗