關(guān)于使用OpenCsv導(dǎo)入大數(shù)據(jù)量報(bào)錯的問題
導(dǎo)入100W的Csv數(shù)據(jù),使用OpenCsv解析工具解析Csv,發(fā)現(xiàn)報(bào)錯
報(bào)錯內(nèi)容
com.opencsv.exceptions.CsvMalformedLineException: Unterminated quoted field at end of CSV line. Beginning of lost text: [XXXXX...]
at com.opencsv.CSVReader.readNext(CSVReader.java:355) ~[opencsv-4.6.jar!/:na]
解析代碼
CSVParser csvParser = new CSVParserBuilder().build(); try (CSVReader readerCsv = new CSVReaderBuilder(new InputStreamReader(csv)).withCSVParser(csvParser).build()) { String[] lines; while ((lines = readerCsv.readNext()) != null) { doRead(lines); } } catch (CsvValidationException e) { throw new IOException(e); }
報(bào)錯位置發(fā)生在英文逗號處,一開始懷疑是英文逗號解析問題
Csv 文本報(bào)錯位置
"2018-04-28 00:40:43","xxx,XXXXX"
去掉當(dāng)前位置英文逗號導(dǎo)入仍舊失敗
后來查看源碼發(fā)現(xiàn)默認(rèn)的 CSVParser 會對反斜杠""進(jìn)行處理
這導(dǎo)致了解析Csv邏輯與源文件不同
后來使用了 RFC4180Parser 問題解決
RFC4180Parser rfc4180Parser = new RFC4180ParserBuilder().build(); try (CSVReader readerCsv = new CSVReaderBuilder(new InputStreamReader(csv)).withCSVParser(rfc4180Parser).build()) { String[] lines; while ((lines = readerCsv.readNext()) != null) { doRead(lines); } } catch (CsvValidationException e) { throw new IOException(e); }
參考文檔:(RFC4180標(biāo)準(zhǔn)文檔)https://datatracker.ietf.org/doc/html/rfc4180
到此這篇關(guān)于使用OpenCsv導(dǎo)入大數(shù)據(jù)量報(bào)錯的問題 的文章就介紹到這了,更多相關(guān)OpenCsv導(dǎo)入大數(shù)據(jù)量報(bào)錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Django中異步任務(wù)之django-celery
這篇文章主要介紹了詳解Django中異步任務(wù)之django-celery,本文通過場景分析實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Python unittest單元測試框架實(shí)現(xiàn)參數(shù)化
這篇文章主要介紹了Python unittest單元測試框架實(shí)現(xiàn)參數(shù)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04python+selenium打印當(dāng)前頁面的titl和url方法
今天小編就為大家分享一篇python+selenium打印當(dāng)前頁面的titl和url方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python計(jì)算機(jī)視覺opencv圖像金字塔輪廓及模板匹配
這篇文章主要為大家介紹了python計(jì)算機(jī)視覺opencv圖像金字塔圖像輪廓及模板匹配的學(xué)習(xí)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11Django python雪花算法實(shí)現(xiàn)方式
在Django項(xiàng)目中添加自定義模塊或應(yīng)用來封裝雪花算法,步驟包括創(chuàng)建應(yīng)用,編寫算法實(shí)現(xiàn)代碼至utils.py文件,及配置settings.py,此方法可方便在項(xiàng)目中隨處調(diào)用雪花算法,適用于需要唯一ID生成的場景2024-09-09python NumPy ndarray二維數(shù)組 按照行列求平均實(shí)例
今天小編就為大家分享一篇python NumPy ndarray二維數(shù)組 按照行列求平均實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11聊聊python中的load、loads實(shí)現(xiàn)反序列化的問題
在python自動化中,我們傳遞一些參數(shù)是需要從文件中讀取過來的,讀取過來的字典并非python對象數(shù)據(jù)類型而是string類型。本文給大家分享python中的load、loads實(shí)現(xiàn)反序列化的問題,感興趣的朋友一起看看吧2021-10-10python3.6 tkinter實(shí)現(xiàn)屏保小程序
這篇文章主要為大家詳細(xì)介紹了python3.6 tkinter實(shí)現(xiàn)屏保小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07