Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink scala readCsvFile行为_Apache Flink - Fatal编程技术网

Apache flink scala readCsvFile行为

Apache flink scala readCsvFile行为,apache-flink,Apache Flink,我正在使用flink将csv文件加载到POJO数据集中,该数据集是通过scala case类使用readCsvFile方法定义的,我有一个无法解决的问题。 在csv中,如果某个记录的任何字段中存在格式错误,则该记录将被丢弃,我认为保存这些记录的唯一方法是将其全部键入字符串,然后自己进行验证。 问题是,如果分隔符后面的最后一个字段为空,则默认情况下会丢弃该记录,我认为这是因为它被视为没有预期的字段数,并且不可能处理此记录错误,而如果之前的任何字段中的空值为空,则没有问题 示例 字段1 |字段2 |

我正在使用flink将csv文件加载到POJO数据集中,该数据集是通过scala case类使用readCsvFile方法定义的,我有一个无法解决的问题。
在csv中,如果某个记录的任何字段中存在格式错误,则该记录将被丢弃,我认为保存这些记录的唯一方法是将其全部键入字符串,然后自己进行验证。
问题是,如果分隔符后面的最后一个字段为空,则默认情况下会丢弃该记录,我认为这是因为它被视为没有预期的字段数,并且不可能处理此记录错误,而如果之前的任何字段中的空值为空,则没有问题

示例
字段1 |字段2 |字段3
a|c
a | b |

在本例中,第一条记录由readCsvFile方法返回,而不是第二条

这种行为正确吗?是否有人四处走动以获取记录?

谢谢,Flink中的Case类和元组不支持空值。因此,如果空字段不是字符串,
a | | c
无效。在这种情况下,我建议使用
RowCsvInputFormat
。它支持空值,并且泛型行可以在下面的映射运算符中转换为任何其他类。

问题在于,如您所说,如果字段是字符串,即使记录为空,也应该有效,并且当空值在最后一个字段中时不会发生这种情况。根据位置的不同,行为会有所不同

我还将尝试使用您推荐的RowCsvInputFormat。
谢谢

阅读[如何创建一个最小、完整且可验证的示例][1],并相应地编辑您的问题。[1]: