Как быстрее вытащить 12 миллионов строк в CSV из таблицы улья, используя Java? - PullRequest
1 голос
/ 21 мая 2019

Мне нужно вытащить ~ 12 миллионов строк в CSV, используя JDBC для Hive Connection.Могу ли я сделать это быстрее, используя некоторую пакетную обработку?Могу ли я добавить файл CSV?

Я установил соединение с Hive с помощью JDBC и смог создать файл CSV на своем локальном компьютере.Но он работает очень долго из-за большого количества строк.Я использую набор результатов JDBC для хранения результатов запроса и записи их в CSV с помощью классов Java FileWriter и CSVWriter.

Я хочу ускорить процесс копирования данных в CSV.Я ищу какой-то способ пакетной обработки для чтения данных из таблицы и добавления их в CSV.

1 Ответ

1 голос
/ 22 мая 2019

Univocity-парсеры довольно легко выгружают результирующие наборы в CSV:

ResultSet resultSet = statement.executeQuery("SELECT * FROM table");

//configure your CSV format
CsvWriterSettings writerSettings = Csv.writeExcel(); //pre-configured format to be excel compatible
writerSettings.setHeaderWritingEnabled(true); // if you want the column names to be printed out in the first row

CsvRoutines routines = new CsvRoutines(writerSettings);
routines.write(resultSet, new File("/path/to/your.csv"), "windows-1252");

Надеюсь, это поможет.

Отказ от ответственности: я являюсь автором этой библиотеки (лицензия Apache 2.0)

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