【发布时间】:2015-12-29 16:08:27
【问题描述】:
我有一个没有被缓存的 RDD。我为其设置了默认的cache() 指令,并使用count() 强制执行操作。
is_cached 方法返回 True,但在 Spark UI 中我看不到存储选项卡中的 RDD(进一步调用 count 所用的时间与第一次完全相同)。
toDebugString 返回:
(4) RDD CoalescedRDD[8] at coalesce at NativeMethodAccessorImpl.java:-2 [Memory Serialized 1x Replicated]\n | MapPartitionsRDD[7] at textFile at NativeMethodAccessorImpl.java:-2 [Memory Serialized 1x Replicated]\n | s3://... HadoopRDD[6] at textFile at NativeMethodAccessorImpl.java:-2 [Memory Serialized 1x Replicated]'
还有StorageLevel:
StorageLevel(False, True, False, False, 1)
输入数据为 64MB,我有 2 个执行程序,每个执行程序剩余 500MB。其他 RDD 缓存就好了。
代码:
*合并前 numPartitions 为 5943
RDD = sc.textFile('s3:/...',use_unicode=False).coalesce(4)
RDD.cache()
RDD.count()
【问题讨论】:
-
我们需要一个最小的可重现代码示例
标签: apache-spark pyspark