-3

我有两个 csv 文件类型,第一个文件的内容如下:

1 13733776062
2 13535581615
3 13987993374
4 13866603331

第二个文件的内容如下:

13535581615|1
13733776062|0
13866603331|0
13987993374|1

第一个文件每行的格式是:id number,第二个文件每行的格式是:number flag. 他们有一个关系字段:number.

每个文件有 1000 万行。现在我想通过数字字段将这两个文件组合成一个新文件,其中包含id,number,flag每行的 3 个字段。我正在使用 Java 来执行此操作。

有人能告诉我这项工作消耗更少时间的最佳方法吗?

4

1 回答 1

0

这是更适合 SQLite 而不是 Java 的任务。你可以这样做:

$ sqlite3 database.db
sqlite> CREATE TABLE table1 (id int, number int);
sqlite> .separator " "
sqlite> .import t1.csv table1
sqlite> CREATE TABLE table2 (number int, flag int);
sqlite> .separator "|"
sqlite> .import t2.csv table2
sqlite> CREATE TABLE mytable AS
        SELECT t1.id, t1.number, t2.flag
        FROM table1 t1, table2 t2
        WHERE t1.number=t2.number;
sqlite> SELECT * FROM mytable;
1|13733776062|0
2|13535581615|1
3|13987993374|1
4|13866603331|0

我希望它可以非常快地处理 1000 万行。

当然,您可以使用 SQLite JDBC 从 Java 创建和访问新数据库。

为了加快访问速度,最好创建适当的索引。

于 2013-11-11T09:03:39.913 回答