问题标签 [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 回答
452 浏览

java - CSVRecordReader 和 CSV 行末尾的未终止引用字段

我正在使用的数据集有问题。它们是包含假新闻的 CSV。我的问题在于CSVRecordReader课程,这是 DataVec (Deeplearning4j) 为我提供的。我正在尝试进行火花转换过程。我的问题是众所周知的“ CSV 行末尾未终止的引用字段”错误。

在网上搜索大家建议你查找出现这种情况的行,并在csv中修复问题,但这会非常困难,因为数据集包含文章的部分内容(可以是真假)。这些文章包含许多引号中的引用,以及其他典型的文章。

寻找解决方案我最终使用 Univocity csv 解析器库实现了我自己的 CSVRecordReader,它非常灵活并且解决了当前存在的所有问题CSVRecordReader,但现在我发现了另一个困境,那就是这个库的解析器没有实现接口 Serializable 并在 Apache Spark 中运行转换会引发异常

org.apache.spark.SparkException:任务不可序列化原因:java.io.NotSerializableException:com.univocity.parsers.csv.CsvParser

我该如何解决我的问题?

在此处输入图像描述

我自己的 CSVRecordReader 代码

示例数据集

为什么要花两年时间才能摧毁它们?我们又来了……另一组从政府和纳税人那里偷东西!一群索马里人在短短 10 个月内偷走了超过 400 万份政府福利!我们已经报道了许多类似这样的案例,其中穆斯林难民/移民通过欺骗我们的系统进行欺诈......这是失控的!更多相关","english","2016-10-27T01:49:27.168+03:00","100percentfedup.com","US",25689,"Muslims BUSTED: 他们偷走了数百万的政府福利", 0"http://bb4sp.com/wp-content/uploads/2016/10/Fullscreen-capture-10262016-83501-AM.bmp.jpg ",0,1,0,0,0,"bias"

这是我的改造过程

这是我使用 CSVRecordReader (DataVec) 时的输出错误

这就是当我使用我自己的 CSVRecordReader 和 univocity csv 解析器时的序列化问题(这个库不实现可序列化)

0 投票
1 回答
170 浏览

java - Univocity Parser 尝试解析文件,但出现错误

无法解析文件名。主要原因是新文件需要路径名,但我正在传递字符串。如何将字符串转换为路径名?

0 投票
1 回答
88 浏览

java - Univocity - 返回带有错误上下文的包装记录

假设我正在解析一个 CSV 员工文件。我有一个名为 Employee 的 pojo,我正在使用单义性例程和迭代器。

当解析行时发生错误时,我不想使用 setProcessorErrorHandler() 回调。相反,我想返回一个通用的“记录”或“项目”包装器,它包装员工和任何错误上下文信息(如果适用)。有点像JTinyCsvParser库的CsvMappingResult对象的行为方式。

有没有一种简单的方法可以做到这一点,例如 com.univocity.parsers.common.DataProcessingException?

0 投票
0 回答
538 浏览

spring-batch - 平面文件项目阅读器,自定义记录分隔符

我需要解析的平面文件

在哪里

平面文件项目阅读器:我尝试使用自定义记录分隔符策略,我尝试覆盖isEndofRecordSuffixRecordSeparatorPolicy setSuffix()没有运气。它没有将其识别$#为记录分隔符,并且我收到了一个平面文件解析异常。

我有一个解析器单义性解析器来添加自定义记录分隔符。但是,我不确定如何将 CSV Parser 设置添加到我的平面文件阅读器方法中。

公共类 CustomSuffixRecordSeparatorPolicy 实现 RecordSeparatorPolicy {

}

在迭代 1 中,它正确解析行标题,当它进入第二次时,它尝试读取行 value1|value2|value3$#value11|value22|value33 并且记录没有被拆分以逐条区分记录。

最后它失败了

我现在尝试的记录结束方法。如果 header1|hearders...|$#values|| 看起来像这样失败 在同一行它失败了。在我的情况下,有 126 个标题 $#values-126$#values-126$#etc。

0 投票
2 回答
103 浏览

java - Java中的Univocity Parser,基于特定列解析CSV

我对 Univocity Parser 很陌生,我想知道是否有任何方法可以根据特定列的值解析 csv 文件,考虑到 CSV 的大小,我想根据日期属性解析它。(例如:如果日期是 2020 年 1 月 1 日,则仅解析日期值与给定值匹配的那些行,即 2020 年 1 月 1 日)

如果您能就此提供任何见解,我将不胜感激。

如果有人可以为我提供有关所述问题的任何见解,我将不胜感激。

谢谢你,里亚

0 投票
1 回答
121 浏览

java - Univocity master detail relationship beans

I have a fixed structured file like this

5 type records, GM, AB, TM, DM, IN

TM and DM as you see is a master-detail relationship

but also DM and IN are in a master-detail relationship

I managed to collect all the rows in beans but separated way..I need to find a way to associate the master records

I could managed to extract all the records but still cannot associate MD relationship.. I've read the examples on univocity doc but couldn't make it work

In Tm Bean there is a list of Dm bean and of course in Dm bean the list of in Bean

UPDATE

I'm USING MasterDetailListProcessor but can get only 1 level of master-detail

0 投票
0 回答
22 浏览

java - Univocity 获取索引线同时解析

有没有办法同时处理行获取文件的当前索引行并将该值分配给映射到的 Bean 的属性?

0 投票
2 回答
405 浏览

csv - Univocity CSV 解析器根据条件跳过行

是否可以将 Univocity CSV 解析器配置为根据预定义条件(例如单元格中的值)跳过某些行?

例如,我有以下 CSV 文件:

我想从处理中跳过(并从结果集中删除)所有city等于的行London

我无法在文档中找到这样的功能。请指教。

0 投票
1 回答
45 浏览

java - univocity 可以以 OR 的方式执行验证器吗?

我想知道是否有任何方法可以以 AND 的 OR 运算符方式执行验证器。目前,如果第一个失败,他不会运行另外两个,但是我需要他运行它们以向用户返回他应该应用于文件的所有相应修复。

我有类似的东西:

我不创建单个验证,因为我想创建一般验证并根据字段调用特定验证。

提前致谢。

0 投票
1 回答
120 浏览

java - 使用 Univocity 将 bean 注释到部分记录

我想让 Univocity 使用带注释的 bean实例来确定 CSV 内容的一部分,即仅前几列。其余列由一些复杂的编程逻辑提供,独立于 bean 实例或类型。

我知道 Univocity 可以将带注释的 bean 转换为记录,但是我找不到如何使用 Univocity 处理带注释的 bean 以获得部分记录,而我在不使用带注释的 bean 的情况下以编程方式确定记录的其余部分。

bean 将使用@Headers 和@Parsed 注释进行注释。(带注释的 bean 将由我的库的用户提供。)

我想实现与以下功能等效的东西。

如何使用单义性从 bean 类中检索标头和 bean 实例中的解析值?