A
VectorAssembler
我可以做这项工作:
VectorAssembler是一个转换器,它将给定的列列表组合成单个向量列。它对于将原始特征[…]组合成单个特征向量非常有用
根据您的代码,解决方案如下所示:
val data2 = spark.read.format("csv")
.option("header","true")
.option("inferSchema", "true") //1
.load("/data/c7.csv")
val fields = data2.schema.fieldNames
val assembler = new VectorAssembler()
.setInputCols(fields.tail) //2
.setOutputCol("features") //3
val goodBadRecords = assembler.transform(data2)
.withColumn("label", col(fields(0))) //4
.drop(fields:_*) //5
-
输入数据需要一个模式,因为VectorAssembler只接受以下输入列类型:所有数字类型、布尔类型和向量类型(
same link
). 您似乎有一个带有双精度的csv,因此推断模式应该是可行的。当然,任何其他将字符串数据转换为double的方法也可以。
-
使用除第一列以外的所有列作为矢量汇编程序的输入
-
特征
-
创建一个名为
标签
作为第一列的副本
-