Я ищу способ решить эту проблему. Два набора данных (CSV) для разных времен или из разных сред должны сравниваться, и их разность должна быть рассчитана и сообщена.
Для этих наборов данных существует ключевой столбец, который должен идеально соответствовать столбцам этого ключа. Эти наборы могут не обязательно иметь одинаковое количество записей, и в этом случае отсутствующие данные не будут иметь отчетную разницу. Все типы данных являются либо строками, либо числами с плавающей запятой.
Для двух файлов размером 300 МБ, каждый из которых содержит приблизительно 500 000 записей, какая структура данных или метод чтения данных будут идеальными без исчерпания кучи памяти? При этом считается, что записи не будут поступать в отсортированном порядке по идентифицирующему ключу. Хранение карты
{key-> Map {attribute -> [valFile1, valFile2]}} был моим первым инстинктом, но это оказалось в значительной степени неэффективным.