我正在尝试使用readCsvFile function将Iris DataSet读入flink并继续ParserError NUMERIC_VALUE_ILLEGAL_CHARACTER
csv(隐藏的字符可见)就像这样
我试图删除文件中项目之间的空格,但没有运气。有多个项目无法读取,这是错误输出:
org.apache.flink.api.common.io.ParseException: Line could not be parsed: '5.4, 3.0, 4.5, 1.5, 2'
ParserError NUMERIC_VALUE_ILLEGAL_CHARACTER
Expect field types: class java.lang.Long, class java.lang.Long, class java.lang.Long, class java.lang.Long, class java.lang.Integer
in file: /home/hkr/Documents/Estudios/Máster/TFM/Desarrollo/DPASF/dpasf/target/scala-2.11/test-classes/iris.dat
[...]
org.apache.flink.api.common.io.ParseException: Line could not be parsed: '4.5, 2.3, 1.3, 0.3, 1'
ParserError NUMERIC_VALUE_ILLEGAL_CHARACTER
[...]
但是当我检查那些行时,我发现没有奇怪的角色,只有下面的图片中的那些。
我尝试过不同的事情:
// Iris POJO
case class Iris(SepalLength:Long,
SepalWidth:Long,
PetalLength:Long,
PetalWidth:Long,
Class:Int)
val env = ExecutionEnvironment.getExecutionEnvironment
val dataSet = env.readCsvFile[Iris](getClass.getResource("/iris.dat").getPath, "\n", ",")
此不同的组合,例如将Class
attr更改为Long
,或使用Tuple5,以及使用readCsvFile和默认值args:
val dataSet = env.readCsvFile[(Long, Long, Long, Long, Long)](getClass.getResource("/iris.dat").getPath)
val dataSet = env.readCsvFile[(Long, Long, Long, Long, Int)](getClass.getResource("/iris.dat").getPath)
有人知道可能发生了什么吗?我不知道在哪里看。
答案 0 :(得分:1)
出于某种原因,在再次用新行替换所有行,然后从数据集中删除所有空格后,它似乎现在正在工作。
答案 1 :(得分:1)
删除定界符前后的空白可以帮助解决此问题。