Как сохранить несколько json-объектов в java Concurrent Java List, пока работают Spark Task Executors - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь заполнить структуры данных определенного типа List несколькими исполнителями Spark Task.Итак, я ищу атомарность.

Итак, я сказал 10 строк.Каждая строка имеет, скажем, m пары ключей-значений.key1-val1, .... keym-valm.

Теперь исполнители My Task пытаются внедрить эти строки в базу данных, подобную DynamodB.В моем db ingestor написаны обработчики OnSuccess OnFailure.Я хочу знать, могу ли я убедиться, что у меня есть «параллельный» список с 10 элементами, где каждый элемент указывает на одну строку, т.е. каждая строка имеет m пар ключ-значение.

Какую структуру данных использовать.Так как это вызывается исполнителем задачи, я подумал об использовании LinkedBlockingQueue.Но какова будет точная коллекция?

Означает ли это BlockingQueue нормально?Но как каждый элемент в очереди блокировки содержит список пар ключ-значение?

1 Ответ

0 голосов
/ 30 сентября 2018

Если вы хотите накапливать результат задания в Spark, вам следует использовать рамки накопителя искры.Вы читаете о платформе здесь: - https://spark.apache.org/docs/2.2.0/rdd-programming-guide.html#accumulators.

В случае параллельного параллелизма плоскости, если вы просто хотите сохранить значение из разных потоков, вместо использования очереди блокировки вы можете просто использовать ConcurrentHashMap,где ключом будет ваше число от 1 до 10, а значение может иметь тип ConcurrentLinkedQueue, который может содержать пару ключ-значение.

...