2

使用 org.apache.spark.mllib.util.MLUtils 包中的以下方法,将 LIBSVM 格式的二进制标记数据加载到 RDD[LabeledPoint] 中,自动确定特征数和默认分区数。

def loadLibSVMFile(sc: SparkContext, path: String): RDD[LabeledPoint]

我的问题是加载具有多类标签的数据?在多类标记数据上使用此方法时……它正在转换为二进制标记数据……有没有办法将 LibSVM 格式的多类数据加载到 RDD[LabeledPoint] 中……?

同一个包中还有另一种方法,描述如下

将 LIBSVM 格式的标记数据加载到 RDD[LabeledPoint] 中,具有默认的分区数。

def loadLibSVMFile(sc: SparkContext, path: String, numFeatures: Int): RDD[LabeledPoint]

但是当我尝试使用它时,出现错误显示“找到 Int,需要布尔值”

4

1 回答 1

0

您使用的是什么版本的 Spark?我刚刚使用了这个文件 http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass/glass.scale

Spark 1.1 和以下代码:

val lbldRDD = MLUtils.loadLibSVMFile(sc,svmFile)
lbldRDD.map(_.label).collect().toSet.map(println)

我看到输出:

5.0 1.0 6.0 2.0 7.0 3.0

这对我来说似乎是正确的

于 2014-10-24T20:16:53.887 回答