问题标签 [univocity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
722 浏览

java - Univocity CSV 解析器会粘合整行,如果它以引号开头“

univocity 2.7.5用来解析csv文件。到目前为止,它工作正常并将csv文件中的一行解析为带有元素的字符串数组n,其中 n = 一行中的列数。但是现在我有一个文件,其中行以引号开头",解析器无法处理它。它返回一行作为字符串数组,其中只有一个元素包含整行数据。我试图从csv文件中删除该引用并且它工作正常,但大约有 500,000 行。我应该怎么做才能让它工作?

这是我文件中的示例行(源文件中也有引号)

这是我的代码:

0 投票
1 回答
485 浏览

csv - 使用单义性解析器加载大型 CSV 文件时过早的 EOF。

解析器配置如下:

抛出错误时的内部状态如下:

引发错误时的内部状态:line=1171815, column=4, record=1171815, charIndex=134217728, headers=[Counter, FirstName, LastName, IdNumber, StartDate, Salary, SecurityCleared, ManagerFName, ManagerLName, ManagerId, ProfileId, DateEvaluated, FriendFname, FriendLname, Friend],在 com.univocity.parsers.common.AbstractParser.handleException(AbstractParser.java:369) 在 com.univocity.parsers.common.AbstractParser.parseNext(AbstractParser.java:595) 解析的内容 = 201

0 投票
0 回答
1116 浏览

java - 如何使用包含分隔符的 JSON 字段解析 CSV?

我有以下 CSV 文件,其中包含可能包含分隔符的 JSON 字段:

我尝试使用以下代码来获取整个字段,但它总是被内部分隔符分割:

预期输出:

电流输出:

当文件在引号之间时,如何告诉 CSV 解析器不要拆分?

0 投票
1 回答
1323 浏览

java - 唯一性解析为 bean 导致空值

我正在尝试使用 univocity csv 解析器将超过 300 万行的 csv 文件解析为 java bean 列表。我像在我的示例中那样设置它,但是当我解析 csv 时,每个 java bean 都有空属性值。我玩弄了这些设置,但找不到我的错误在哪里。这些是我使用的 Maven 依赖项:

这是我的测试课:

}

这是我的豆子:

这是我的 csv 文件:

我使用我的toString()方法的结果看起来总是这样:

编辑:

我的文件路径有错误。现在我收到以下错误:

0 投票
2 回答
237 浏览

java - java中使用CSV解析器的键值解析器实现

我正在编写一个程序来解析基于键值的日志,如下所示:

我正在使用 Univocity 解析器来做到这一点。这是我的代码。

但是解析器给了我这个输出:

预期输出在哪里

代码有问题还是这是解析器错误?

问候,
哈里

0 投票
1 回答
399 浏览

univocity - @Validate 在 UniVocity 解析器中与 CsvRoutines 一起使用时不会跳过无效行

我正在使用 Univocity 解析器版本 2.7.3。我有一个 CSV 文件,其中包含 100 万条记录,并且将来可能会增长。我只读取文件中的几个特定列,以下是我的要求:

  • 不要在任何时候将 CSV 内容存储到内存中

  • 如果 CSV 中的纬度或经度列为空/空白,则忽略/跳过 bean 创建

为了满足这些要求,我尝试实现 CsvRoutines,以便 CSV 数据不会复制到内存中。我在“纬度”和“经度”字段上都使用了@Validate 注释,并使用错误处理程序不抛出任何异常,以便在验证失败时跳过记录。

CSV 样本:

TestDTO.java

主.java

问题:

我实际上希望计数为零,因为我添加了错误处理程序并且没有抛出数据验证异常,但似乎情况并非如此。我认为@Validate 在遇到纬度或经度为空的记录时会抛出异常(同一记录中的两列也可能为空),该异常在错误处理程序中被处理和忽略/跳过。

基本上我不希望 UniVocity 在堆中创建和映射不必要的 DTO 对象(并导致内存不足),因为传入的 CSV 文件可能有超过 200 或 300k 条纬度/经度为空的记录。

我什至尝试在 @Validate 中添加自定义验证器,但徒劳无功。

有人可以让我知道我在这里缺少什么吗?

0 投票
2 回答
782 浏览

excel - CSV 文件,其值在引用文本限定符中具有单引号

我正在尝试解析具有单引号作为文本限定符的 CSV 文件。这里的问题是一些带有单引号文本限定符的值本身包含单引号,例如:

我正在努力解析文件,因为在这一行之后,所有剩余的行都被取代了。

我尝试使用 OpenCSV、UnivocityParsers 但没有得到任何运气。如果我将上面的行放在 excel ( Excel Image ) 中并将文本限定符作为单引号提供,它会给出正确的结果,而不会发生任何行位移。

0 投票
1 回答
431 浏览

scala - CsvParser 不适用于缺少双引号

我在文件中有一条消息,如下所示,我com.univocity.parsers.csv.CsvParser用来根据分隔符拆分字符串(在本例中为-

1-bc-“名称”-def-address

1-abc-"名称-定义-地址

我创建我的CsvParser对象

并解析输入消息,如:

输出是:

如果您看到输出,您可以看到对于第一条消息,字符串被正确拆分,但是对于第二条消息,它在第一个双引号之后将所有内容都作为一个值。有谁知道为什么会出现这样的行为以及如何获得所需的输出?我正在阅读每条消息作为一个字符串,它应该简单地将引号/双引号视为一个字符。

0 投票
2 回答
3054 浏览

apache-spark - 加载 csv 文件时获取 com.univocity.parsers.common.TextParsingException

我正在尝试将数据中包含很多新行的 tsv 数据集加入到另一个数据帧并不断获取

com.univocity.parsers.common.TextParsingException

我已经清理了我的数据以将 \N 替换为 NA,因为我认为这可能是原因,但没有成功。

错误将我指向错误数据中的以下记录

tt0100054 2 Повелитель мух SUHH ru NA NA 0

堆栈跟踪如下

我已经尝试在 csv option("maxCharsPerCol","110000000") .option("multiLine","true") 中设置以下内容,但没有帮助。我将不胜感激任何帮助解决此问题。

我正在使用 spark 2.0.2 和 scala 2.11.8。

0 投票
1 回答
394 浏览

java - univocity - 如何从选定的字符中解析字符串

我有下一个 .csv 文件:

tt0102057, 6, 2010-06-19, 钩

tt0102059, 7 ,2013-06-23, 热点!

tt0102070, 5, 2010-02-10, 哈德逊鹰

我需要将第一列的值解析为 int 值,而不是字符串。所以我需要跳过前两个符号并将其余的作为整数。

如何在解析阶段使用单义解析器来做到这一点?

该代码有效并将数据保存到bean: