我正在通过flink读取csv文件。 csv文件具有特定的列数。
我已经定义
RowCsvInputFormat format = new RowCsvInputFormat(filePath,
new TypeInformation[]{
BasicTypeInfo.STRING_TYPE_INFO,
BasicTypeInfo.STRING_TYPE_INFO,
BasicTypeInfo.STRING_TYPE_INFO,
BasicTypeInfo.STRING_TYPE_INFO
});
如果文件中的所有行都有正确的4列,则代码工作正常。
我想处理以下情况:文件中的几行没有4列,或者几行中没有其他问题。
如何在flink中实现这一目标。
答案 0 :(得分:0)
如果您在此处查看wikipedia或rfc4180上的规范,似乎CSV文件应该仅包含具有相同列数的行。因此,RowCsvInputFormat不支持此设置。
您可以使用readTextFile(path)读取文件,然后在 for (items in my_json) {}
运算符中将字符串解析为Row对象(或者忽略是否连续出现问题)
flatMap()