3

问这个问题听起来很天真,但这是我最近在项目中遇到的一个问题。需要对它有更好的理解。

df.persist(StorageLevel.MEMORY_AND_DISK)

每当我们在 HBase 读取中使用此类持久化时 - 相同的数据会一次又一次地返回到流作业的其他后续批次,但 HBase 会在每次批次运行时更新。

HBase 读取代码:

val df = sqlContext.read.options(Map(HBaseTableCatalog.tableCatalog -> schema)).format(dbSetup.dbClass).load().persist(StorageLevel.MEMORY_AND_DISK)

我替换persist(StorageLevel.MEMORY_AND_DISK)cache()它,它按预期从 HBase 表返回更新的记录。

我们尝试使用的原因persist(StorageLevel.MEMORY_AND_DISK)是确保内存中的存储不会被填满,并且我们不会在执行特定流期间重新进行所有转换。

Spark 版本- 1.6.3 HBase 版本- 1.1.2.2.6.4.42-1

有人可以向我解释一下并帮助我更好地理解吗?

4

0 回答 0