Сначала Внимание:
Дать инструмент согласования содержит много мелких раздражения и крайние случаи, такие как форматы дату, числовые форматы (запятые в цифрах, научные обозначения и т.д.), соединения ключей, пороги, игнорируя столбцы, игнорируя заголовки/нижние колонтитулы и т. д.
Если у вас есть только один файл, чтобы указать с четко определенными входами, подумайте о том, чтобы сделать это самостоятельно.
Однако, если вы, скорее всего, попытаетесь расширить его, чтобы быть более общим, тогда заплатите за существующее решение, если сможете, потому что он будет дешевле в долгосрочной перспективе.
Потенциальное решение:
Трудность с распределенным процессом, как вы подходите ключи в неупорядоченных файлах.
Проблема с запуском всего этого в одном процессе - это память.
Подход, который я использовал для коммерческого инструмента, заключался в том, чтобы сохранить CSV в таблицах в h2 и использовать SQL для выполнения diff.
H2 намного быстрее, чем Oracle, для чего-то подобного.
Если ваши данные хорошо структурированы, вы можете воспользоваться возможностью загрузки h2 непосредственно из CSV, и если вы сохраните результат в таблице, вы также можете записать вывод в CSV, или вы можете использовать другие Frameworks для записи более структурированный вывод или поток результата на веб-страницу.
Если ваш формат xls (x), а не CSV, вы должны выполнить тест производительности различных библиотек для чтения файла, так как существуют огромные различия при работе с этим размером.
Не могли бы вы рассказать о средствах сравнения. –
например, 2 больших сравнения csv, в которых говорится, что каждая строка соответствует, не соответствует каждой строке и готовит отчет для этого, не так ли? Если это так, вы можете использовать искру rdd load (используя sc.textfile) 2 файла на 2 rdds и сравнить простым способом –
@@ Ram спасибо за ответ. В дополнение к этому нам также нужно создать отчет, поля которого не совпадают в записи. Отчет должен быть в следующем формате: 1. Левая мисс (т.е. записи csv1 отсутствуют справа) 2. Правая миссия (т. Е. Записи CSV2 отсутствуют в csv1) 3. Если записи доступны в обоих файлах csv (записи имеют уникальный идентификатор, говорят, что основной ключ в таблице), поля которых не совпадают. –