簡體   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