VectorAssembler unterstützt nicht den StringType-Typ scala spark convert

Ich habe einen Datenrahmen, der Zeichenfolgenspalten enthält, und ich plane, ihn als Eingabe für k-means unter Verwendung von spark und scala zu verwenden. Ich konvertiere meine Zeichenfolgenspalten des Datenrahmens mit der folgenden Methode:

 val toDouble = udf[Double, String]( _.toDouble) 
 val analysisData  = dataframe_mysql.withColumn("Event", toDouble(dataframe_mysql("event"))).withColumn("Execution", toDouble(dataframe_mysql("execution"))).withColumn("Info", toDouble(dataframe_mysql("info")))              
 val assembler = new VectorAssembler()
    .setInputCols(Array("execution", "event", "info"))
    .setOutputCol("features")
val output = assembler.transform(analysisData)
println(output.select("features", "execution").first())

wenn ich das analysisData-Schema drucke, ist die Konvertierung korrekt. aber ich bekomme eine ausnahme:VectorAssembler unterstützt nicht den StringType-Typ was bedeutet, dass meine Werte noch Strings sind! Wie kann ich die Werte und nicht nur den Schematyp konvertieren?

Vielen Dan

Antworten auf die Frage(2)

Ihre Antwort auf die Frage