假设我有一个带有复合键的hbase表- Key1,Key2,Key3,Time
我想用spark做这样的事情:
Aggregate at -> Key1,Key2,Key3,DatePart(Time),Hour(Time) --->Save result in Another table (Step1Table)
使用以上rdd
Aggregate at -> Key1,Key2,DatePart(Time),Hour(Time) --->Save result in Another table (Step2Table)
使用以上rdd
Aggregate at -> Key1,DatePart(Time),Hour(Time) --->Save result in Another table (Step3Table)
问题是,当我想把结果保存到表中时,我不想做简单的插入,我想做某种合并(如果键的记录存在),有人能指导我吗
我想我需要创建一个重载的tableoutputformat,有人能告诉我怎么处理它吗?
1条答案
按热度按时间goucqfw61#
hbase是一种读/写介质。您可以为同一行键创建新条目:它们将具有较新的时间戳,以便“有效地”替换较旧的时间戳。
因此,您的step1table、step2table和step3table可以通过以下方式进行管理:
从hbase读取给定密钥的聚合。
将新值添加到每个聚合:重新计算值
将新值存储回同一个键。
基本上,工作不是以特殊的输入/输出格式(除了使用hbase的tableinput/outputformat之外)进行的,而是在聚合计算中进行的。