赞
踩
DataFrame 的 cache 默认采用 MEMORY_AND_DISK
RDD 的 cache 默认方式采用 MEMORY_ONLY
缓存:(1)dataFrame.cache (2)sparkSession.catalog.cacheTable(“tableName”)
释放缓存:(1)dataFrame.unpersist (2)sparkSession.catalog.uncacheTable(“tableName”)
1)Cache 缓存只是将数据保存起来,不切断血缘依赖。Checkpoint 检查点切断血缘依 赖。
2)Cache 缓存的数据通常存储在磁盘、内存等地方,可靠性低。Checkpoint 的数据通 常存储在 HDFS 等容错、高可用的文件系统,可靠性高。
3)建议对 checkpoint()的 RDD 使用 Cache 缓存,这样 checkpoint 的 job 只需从 Cache 缓存中读取数据即可,否则需要再从头计算一次 RDD。
1)默认采用 Hash 分区
缺点:可能导致每个分区中数据量的不均匀,极端情况下会导致某些分区拥有 RDD 的 全部数据。
2)Ranger 分区: 要求 RDD 中的 KEY 类型必须可以排序。
3)自定义分区 根据需求,自定义分区。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。