Не вижу смысла помещать эти данные в несколько семейств столбцов. Кажется, вы можете поместить все это в один столбец и использовать схему адресации, такую как «i_j», где i и j заменяются вашими индексами. Проблема с размещением элементов в нескольких семействах столбцов заключается в том, что каждое семейство столбцов получает свой собственный файл хранилища и, таким образом, использует гораздо больше ресурсов кластера. Также рассмотрите возможность использования минимального количества байтов для имени семейства столбцов.
Проблема не может быть диагностирована без просмотра кода, который вставляет данные в таблицу, и полного кода, который извлекает данные из таблицы. Конечно, вам не нужно повторять строки так безвозмездно. Попробуйте что-нибудь попроще, например:
byte[] column_family = Bytes.toBytes("a");
for (int i = 0; i < MAX_I; i++) {
for (int j = 0; j < MAX_J; j++) {
train[i][j] = Double.parseDouble(Bytes.toString(r.getValue(column_family, Bytes.toBytes(i+"_"+j);
System.out.println("train["+i+"]["+j+"]: "+train[i][j]);
}
}