有没有一种方法可以快速执行一个“如果存在更新,则忽略其他”处理sparksql并存储到kudu中?
内容是:物联网平台,接收数据量大,平台资源有限。我正在使用spark流将数据插入/更新到kudu存储器中。
连接的设备发送两种消息:
第一条消息:完整的消息(id设备、id会话、设备数据、会话数据)
所有其他消息都是局部的:)id device,id session,session data)
由于资源限制,我打算使用单表模型:
当我收到第一条信息时,我会插入它
当收到其他消息时,将更新注册表。
但生活并不完美,有时“第一条”的信息会丢失而无法坚持。在这种情况下,我想“忽略”设备,这就是为什么我不能使用upsert。
我放弃了存储parcial消息的可能性,然后删除所有带有空设备数据的消息,因为扫描和删除正在消耗我有限的资源。
我发现的唯一方法是执行一个join来查找现有的pk并更新它们相应的注册表,这也消耗了大量的资源。
所以问题是,如果存在一个update if exists,else insert可用,那么一个update if exists,else ignore如何以优化的方式实现“updateifexists”一个spark df呢?
谢谢
暂无答案!
目前还没有任何答案,快来回答吧!