繁体   English   中英

Spark Task Executors工作时如何在Java并发Java List中存储多个json对象

[英]How to store multiple json objects in java Concurrent Java List while Spark Task Executors do work

我正在尝试通过多个Spark Task执行程序填充某些列表类型的数据结构。 因此,我正在寻找原子性。

所以,我说有10行。 每行有说m个键值对。 key1-val1,.... keym-valm。

现在,“我的任务”执行程序正在尝试将这些行吸收到dynamodb这样的数据库中。 我的数据库摄取器已编写了OnSuccess OnFailure处理程序。 我想知道是否可以确保我有一个包含10个项目的“并发”列表,其中每个项目都指向一行,即每一行有m个键值对。

使用哪种数据结构。 由于这是由任务执行者调用的,因此我想到了使用LinkedBlockingQueue。 但是确切的集合是什么。

这个BlockingQueue看起来还好吗? 但是阻塞队列中的每个元素如何包含键值对列表?

如果要在Spark中累积任务的结果,则应使用spark的累积器框架。 您可以在这里阅读有关该框架的信息: -https : //spark.apache.org/docs/2.2.0/rdd-programming-guide.html#accumulators

对于平面Java并发,如果您只想存储来自不同线程的值,则可以使用ConcurrentHashMap来代替使用阻塞队列。 其中键是您的数字1到10,值可以是ConcurrentLinkedQueue类型,其中可以包含键值对。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM