如何使用Java从hive表中将1200万行拖入CSV?

时间:2019-05-21 16:04:36

标签: csv jdbc hive

我需要使用JDBC将Hive Connection拖入1200万行到CSV中。我可以使用一些批处理来更快地做到吗?我可以附加CSV文件吗?

我已经使用JDBC建立了与Hive的连接,并且能够在本地计算机上创建CSV文件。但是由于行数很大,它的运行时间非常长。我正在使用JDBC结果集存储查询结果,并使用Java的FileWriter和CSVWriter类将其写入CSV。

我想加快将数据复制到CSV的过程。我正在寻找某种批处理方法来从表中读取数据并将其附加到CSV。

1 个答案:

答案 0 :(得分:0)

Univocity-parsers很容易将结果集转储为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许可证)