如何在 Java 中存储多个 json 对象 并发 Java 列表,而 Spark Task Executors 可以工



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

所以,我说了 10 行.每行都有 m 键值对。key1-val1, ....凯姆瓦尔姆。

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

要使用的数据结构。由于这是由任务执行器调用的,我想使用LinkedBlockingQueue。但是确切的集合是什么。

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

如果你想在Spark中积累任务的结果,你应该使用Spark的累加器框架。 您在此处阅读有关框架的信息:- https://spark.apache.org/docs/2.2.0/rdd-programming-guide.html#accumulators。

在平面 java 并发的情况下,如果您只想存储来自不同线程的值,则不使用阻塞队列, 您可以简单地使用ConcurrentHashMap。其中键将是数字 1 到 10,值可以是 ConcurrentLinkedQueue 类型,它可以包含键值对。

最新更新