我有两种类型的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来做到这一点。
有人可以告诉我这项工作消耗更少时间的最佳方法吗?
此任务更适合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创建和访问新数据库。
为了使访问更快,创建适当的索引是个好主意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句