Как объединить 2 CSV-файлов в Java - PullRequest
1 голос
/ 02 ноября 2010

Я хотел бы иметь возможность взять 2 CSV-файла в качестве входных данных, соединить их (стиль SQL) в определенном столбце и вывести новый CSV-файл, который содержит все данные file1, плюс один из столбцов данных из file2.

Какие-нибудь советы о том, как лучше всего этого добиться? Поскольку SQL предлагает команду join, то, возможно, какой-то метод обработки файлов csv в качестве баз данных будет работать хорошо, но я открыт для всех предложений - самые легкие победы.

Вся помощь очень ценится!

Ответы [ 6 ]

0 голосов
/ 16 сентября 2011

Я написал программу командной строки для выполнения произвольного SQL в файлах csv, включая многофайловые объединения, называемые gcsvsql.Вы можете прочитать об этом здесь:

http://bayesianconspiracy.blogspot.com/2010/03/gcsvsql.html

Для этого есть проект Google Code: http://code.google.com/p/gcsvsql/

Он написан на Java / Groovy и будетзапускать везде, где доступна Java.

0 голосов
/ 23 ноября 2010

Вы также можете попробовать использовать драйвер JDBC для файлов CSV, например: http://sourceforge.net/projects/csvjdbc/

0 голосов
/ 22 ноября 2010

Для прямого управления файлами CSV в виде таблиц SQL см .: Чтение файла CSV в Java в виде таблицы БД

0 голосов
/ 03 ноября 2010

Очень простой непрограммный подход: импортируйте оба текстовых файла в электронную таблицу, а затем используйте vlookup (или его эквивалент) для поиска значений из одного листа в другой.

0 голосов
/ 02 ноября 2010

вы можете анализировать ваши CSV-файлы и связывать их с Beans с помощью opencsv: http://opencsv.sourceforge.net/ здесь вы можете связать сущности в CSV со списком Бинов: http://opencsv.sourceforge.net/#javabean-integration

затем вы можете программно делать со списком бинов то, что вы хотите, например, добавлять списки друг к другу, логика, похожая на объединение и т. Д.

0 голосов
/ 02 ноября 2010

Сделайте простой ввод-вывод файла, разбейте каждую строку и загрузите ее в контейнер типа Set.Затем вы можете выполнять операции над типами содержимого двух файлов:

http://www.java2s.com/Code/Java/Collections-Data-Structure/Setoperationsunionintersectiondifferencesymmetricdifferenceissubsetissuperset.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...