我不明白为什么我的输出文件正在失去其顺序。使用csv阅读器库无法保持csv列顺序(tototoshi)
我正在上传带有标题的csv文件(key1 | key2 | key3
)。然后,我使用CsvDataReader
来遍历头文件(scala.Iterator[Map[String, String]]
)。我映射此迭代器,因为我想为csv文件添加值,我为输出创建一个新文件,但输出的顺序与原始文件不同...首先,它是:
key1 key2 key3
和映射后,我希望看到key1 key2 key3 key4
但结果却是相反:
key3 key1 key4 key2
这是为什么?
这是我的代码:
val csvFile = new File(Crypto.decryptAES(request.fileId))
if (csvFile.exists()) {
val csvDataReader = new CsvDataReader(csvFile)
val resultLines = csvDataReader.iteratorWithHeaders.map(row => {
row ++ Map("key4" -> "val4", "key5" -> "val5")
}).toList
val headerOfFile = resultLines.head.keys.toList
val outputFile = File.createTempFile("output-", ".csv")
val csvDataWriter = new CsvDataWriter(outputFile,true)
csvDataWriter.writeHeaders(headerOfFile)
resultLines foreach {csvDataWriter.write(_,headerOfFile)}
csvDataReader.close()
csvDataWriter.close()
知道你的课程来自哪里会很酷......如果它们包含可能相关的错误,你不这么认为吗? – Dici
@Dici哪个类?我分享了一段包含bug的代码,并且所有的东西都直接转发到csv阅读器库文件夹 – Joe