Я использую искру 2.3.2.Для моего случая использования я кэширую первый и второй фреймы данных.
Пытаюсь повторить то же самое.
scala> val df = spark.range(1, 1000000).withColumn("rand", (rand * 100).cast("int")).cache
df: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [id: bigint, rand: int]
scala> df.count
res0: Long = 999999
scala> val aggDf = df.groupBy("rand").agg(count("id") as "count").cache
aggDf: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [rand: int, count: bigint]
scala> aggDf.count
res1: Long = 100
Как видно из рисунка ниже, есть два RDD длякаждый кадр данных.
![enter image description here](https://i.stack.imgur.com/4EuNZ.png)
Теперь, когда я собираюсь на unpersist
мой первый фрейм данных, искра не разделяет оба.
df.unpersist()
Пытаясь понять это странное поведение, почему spark отменяет сопротивление в обоих информационных кадрах, а не в первом?
Я что-то упустил?