为什么persist(storagelevel.memory\和\u disk)与hbase的cache()产生不同的结果?

pnwntuvh  于 2021-06-09  发布在  Hbase
关注(0)|答案(0)|浏览(340)

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

df.persist(StorageLevel.MEMORY_AND_DISK)

每当我们在hbase read上使用这种persist时,同样的数据会一次又一次地返回给流作业的其他后续批处理,但每次批处理运行时都会更新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
有人能给我解释一下,帮助我更好地理解吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题