我是Apache Spark的新手。我正在编写一个程序,通过从Apache Cassandra数据库中获取数据来创建JavaRDD。然后我通过调用一些不属于我的驱动程序的辅助方法来处理RDD中的每个元素。
在基于某些条件的帮助方法中,我想发送电子邮件通知。但在此之前,我想获得已经发送给该用户的通知数量。如果它没有超过限制,那么我想发送通知并增加该用户的数据库中的通知号。
那么当我不在驱动程序中并且在我的帮助方法中没有sparkContext时,如何获取此数据并在数据库中更新此数据?
请建议。我正在使用Apache Spark 2.0.0和Spark Cassandra Java连接器
提前谢谢
答案 0 :(得分:0)
仅在执行者身上不可能,因为他们不会彼此同步。但你可以尝试这个解决方案:
(user, notification)
的数据框collect_list
聚合(架构将更改为(user, [notif1, notif2, ...])
(user, remaining_notifications_number)
希望有所帮助!