请使用包含1000多个日志文件的目录,这些文件已被清理并保存为csv文件。由于某些我不知道的原因,某些文件没有附加到csv文件的某些行的csv分隔符','。因此,在使用CopyManager.copyIn()在java中进行处理时,只要它在没有分隔符“,”以及换行符的情况下进行管理,它就无法继续。请在下面找到csv文件的文件片段和我的示例代码。请帮助我解决这个错误/问题,因此每当没有分隔符或缺少值/空字符串或新行对应db表列名称时,它就会停止/抛出错误。提前谢谢。
CSV文件摘要:
1.1.2.0,sentence,2011,Apr,22,Fr,1,0.046 ,0, 0
01.03.04.05,synonyms,2011,Apr,22,Fr,1,0.012 ,0, 0
09.08.07.06
0.08.07.06,sentence,2011
从上面的csv文件中,每列对应于postgres db中表的字段名,即: 响应(ip_address,service,year,month_of_year,day_of_month,day_of_week,hour_of_week,response_time,coord_x,coord_y)
Java code snippet:
int characters_to_insert_at_once =1000
public static void insertFile()
{
CopyManager copyManager = new CopyManager((BaseConnection) conn);
for(File file : dir.listFiles())
{
long record_count = copyManager.copyIn("COPY response(ip_address,service,year,month_of_year,day_of_month,day_of_week,
hour_of_week,response_time,coord_x, coord_y) FROM STDIN DELIMITER ','",
new FileInputStream(file), characters_to_insert_at_once);
}
}