Как я могу заполнить 2d ArrayBuffer динамически только в одном измерении? - PullRequest
0 голосов
/ 24 июня 2018

Я хочу заполнить (id, ArrayBuffer[ArrayBuffer[Double]]) из Dstream batch.Мои входные данные имеют форму: "id, counter, value", и каждый идентификатор имеет более одного значения на счетчик в каждом СДР.Итак, что я хочу:

       +-------+-----+------+----+
       |      |value1|value2|etc |
       +-------------------------+
 (id,  |count1|0.2   |0.3   |    |)
       |count2|0.1   |      |    |
       |etc   |      |      |    |
       +------+------+------+----+

Когда я получаю RDD input, я знаю измерение счетчика, но я не знаю, сколько значений я сохранил в каждом счетчике, чтобы заполнить следующую пустую ячейку.Я пытался создать Array[Array[Double]] методом findNextEmpty(), но я получил ArrayIndexOutOfBoundsException, поэтому я пытаюсь ArrayBuffer после этого.Есть ли способ динамически заполнить только одно из измерений 2d ArrayBuffer?

Мой код:

var example = inputRdd.transform(x =>
       x.groupBy(_ (0))
       .mapValues(x => x
       .foldLeft( ArrayBuffer[ArrayBuffer[Double]]) { (a, b) => {
        a(b(1).toInt)(??) += b(2).toDouble //Don't know the second dimension             
         }}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...