У меня есть большая матрица целых чисел, которую я хочу иметь возможность разрезать и запускать аналитику. Я создаю это с помощью Apache Ignite.
Матрица 50000 столбцов х 5 миллионов строк. Я хочу иметь возможность выполнять следующие операции над этой матрицей:
- Получить все данные для одного столбца
- Получить все данные для некоторого случайного подмножества строк и столбцов.
- Вычислить коэффициент корреляции для одной строки по отношению к каждой другой строке.
Я сейчас пытаюсь удовлетворить 1. и 2., но не могу понять, как хранить матрицу. Я думал о сохранении матрицы следующим образом:
row1 {
co1: val
co2: val
co3: val
...
co50000: val
}
row2{ ... }
Но я не уверен, что у меня могут быть сложные типы данных в Ignite, или у меня может быть только одна пара ключ: значение. Документация не ясна. Когда я пытаюсь вставить словарь с помощью pyignite (мой Java немного ржавый, поэтому я сейчас придерживаюсь python), данные возвращаются в виде массива:
>>> test.put('row2', { "col1": 50, "col2":0 })
>>> test.get('cell2')
['gene1', 'gene2']
Я новичок в Apache Ignite, но в документации, похоже, нет подробных сведений о том, как это сделать, или даже о том, что это будет производительным.