【发布时间】:2016-08-01 20:17:32
【问题描述】:
我在尝试从原始数据中提取特征时遇到了一些问题。
这是我的数据:
25,Private,226802,11th,7,Never-married,Machine-op-inspct,Own-child,Black,Male,0,0,40,United-States,0
这是我的代码:
val rawData = sc.textFile("data/myData.data")
val lines = rawData.map(_.split(","))
val categoriesMap = lines.map(fields => fields(1)).distinct.collect.zipWithIndex.toMap
这是错误信息:
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 1 in stage 1.0 failed 1 times, most recent failure: Lost task 1.0 in stage 1.0 (TID 3, localhost): java.lang.ArrayIndexOutOfBoundsException: 1
我想提取第二列作为分类特征,但似乎无法读取该列并导致 ArrayIndexOutOfBoundsException。 试了很多次还是不能解决问题。
val categoriesMap1 = lines.map(fields => fields(1)).distinct.collect.zipWithIndex.toMap
val labelpointRDD = lines.map { fields =>
val categoryFeaturesArray1 = Array.ofDim[Double](categoriesMap1.size)
val categoryIdx1 = categoriesMap1(fields(1))
categoryFeaturesArray1(categoryIdx1) = 1 }
【问题讨论】:
-
您可能无法阅读的原因是您的 csv 可能有缺失值。拆分后尝试调查数组的大小
标签: scala apache-spark apache-spark-mllib