当前位置: 首页 > 面试题库 >

Spark列出所有缓存的RDD名称,并且不持久

欧阳声
2023-03-14
问题内容

我是Apache Spark的新手,我创建了几个RDD和DataFrame,并对其进行了缓存,现在我想使用以下命令取消持久化其中的一些

rddName.unpersist()

但我不记得他们的名字。我用过,sc.getPersistentRDDs但是输出不包含名称。我还使用浏览器查看了缓存的rdds,但再次没有名称信息。我想念什么吗?


问题答案:

@Dikei的答案实际上是正确的,但我相信您正在寻找的是sc.getPersistentRDDs

scala> val rdd1 = sc.makeRDD(1 to 100)
# rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at makeRDD at <console>:27

scala> val rdd2 = sc.makeRDD(10 to 1000)
# rdd2: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[1] at makeRDD at <console>:27

scala> rdd2.cache.setName("rdd_2")
# res0: rdd2.type = rdd_2 ParallelCollectionRDD[1] at makeRDD at <console>:27

scala> sc.getPersistentRDDs
# res1: scala.collection.Map[Int,org.apache.spark.rdd.RDD[_]] = Map(1 -> rdd_2 ParallelCollectionRDD[1] at makeRDD at <console>:27)

scala> rdd1.cache.setName("foo")
# res2: rdd1.type = foo ParallelCollectionRDD[0] at makeRDD at <console>:27

scala> sc.getPersistentRDDs
# res3: scala.collection.Map[Int,org.apache.spark.rdd.RDD[_]] = Map(1 -> rdd_2 ParallelCollectionRDD[1] at makeRDD at <console>:27, 0 -> foo ParallelCollectionRDD[0] at makeRDD at <console>:27)

现在让我们添加另一个RDD并命名它:

scala> rdd3.setName("bar")
# res4: rdd3.type = bar ParallelCollectionRDD[2] at makeRDD at <console>:27

scala> sc.getPersistentRDDs
# res5: scala.collection.Map[Int,org.apache.spark.rdd.RDD[_]] = Map(1 -> rdd_2 ParallelCollectionRDD[1] at makeRDD at <console>:27, 0 -> foo ParallelCollectionRDD[0] at makeRDD at <console>:27)

我们注意到它实际上并没有持久。



 类似资料:
  • 我使用过Ehcache 3,我是Ehcache 3的新手,我有一个缓存管理器,如下所示: 现在,当创建对象时,cacheManager已初始化: 初始化cacheManager后,这是我的主类,所有获取和放入缓存的操作都在这里发生。我已经插入了几个数据到不同的缓存,如: 我想要一个单独的函数,它将返回所有缓存的名称和缓存中数据总数的计数,这样我就可以在UI中显示包含数据的缓存。我寻找这个问题,但没

  • 当我运行如下代码时: 观察Yarn中的阶段,我注意到Spark进行了两次DAG计算--一次是用于实体化RDD并缓存它的DISTINCT+计数,然后是完全第二次用于创建检查点副本。 我已经创建了一个Apache Spark Jira票证,以使其成为一个特性请求:https://issues.Apache.org/Jira/browse/Spark-8666

  • 问题内容: 我知道有列出所有用户组的文件。 我想知道是否存在一个简单的命令来列出所有用户组名称,尽管解析了世界可读文件。我愿意创建一个列出Linux帐户组名称的管理员网页。 问题答案: 要列出所有分配了用户的本地组,请使用以下命令: 有关更多信息-> Unix组, Cut命令, sort命令

  • 问题内容: 我知道 将列出表中的所有列,但我有兴趣按字母顺序列出这些列。 说,我有三列,“姓名”,“年龄”和“性别”。 我希望这些列以以下格式组织 是否可以使用SQL做到这一点? 问题答案: 是的,没有:-) SQL本身并不关心列的排列顺序,但是,如果要使用的话: 您会发现它们可能按此顺序出现(尽管我不确定SQL标准是否要求这样做)。 现在您可能 不想 这样做,但有时生活不公平:-) 您还可以使用

  • 问题内容: 我想在这里提出我的问题: 根据获得的少量视图,在具有单独后端服务器的安装上刷新Magento Redis Cache的问题有点过于具体,因此我要提出一个更简单,更通用的问题。 我的问题的详细信息在链接的问题中。但是要点是,如果我尝试从管理区域刷新缓存或刷新magento缓存,它将尝试清除看起来不存在的“zc:ti:403_FPC”之类的内容。相反,它们被命名为“zc:ti:109_FP

  • 问题内容: 我想获取给定类的所有子类及其完全限定名称的列表。我想从Eclipse复制它并粘贴到这样的文本文件中: 我试过了: 在做。 但是 出于某些奇怪的原因,这个列表没有列出子类的子类,而只列出了直接子孙。 类的打开视图,该视图在树组件中打印所有子类, 但是 此视图不允许我选择所有行并复制其名称。 还有其他技巧吗?有数百种课程,因此我想避免手动进行。 问题答案: 按照http://internn