我不明白爲什麼我的輸出文件正在失去其順序。使用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