Wenn Ihre Daten eine RDD ist, können Sie die Methode aufrufen: saveAsLibSVMFile(rdd, path)
Es ist Teil von apache.spark.mllib.util.MLUtils
Paket.
Für offizielle Dokumentation: https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.mllib.util.MLUtils
$ unter der Annahme, hier ein scala Beispiel Sie Ihre kategorischen Daten in binären Funktionen konvertiert haben: (Sie das gleiche tun können, auch in Python oder Java)
val responseData=sc.textFile("response.txt")
val responseValue = responseData.map(line => line.trim().split(" ").map(_.toDouble))
val featuresData=sc.textFile("features.txt")
val featuresValue = featuresData.map(line => {
val featureInt = line.trim().toInt
})
val data = featuresValue.zip(featuresData).map(
line => LabeledPoint(line._1, Vectors.dense(line._2))
)
saveAsLibSVMFile(data, "data.libsvm")
Wenn Sie möchten die PySpark-Version nicht testen, aber etwas wie:
from pyspark.mllib.linalg import SparseVector
from pyspark.mllib.regression import LabeledPoint
responseData=sc.textFile("response.txt")
responseValue = responseData.map(lambda line: map(lambda x: Decimal(x), line.strip().split(" ")))
# for clarity you can also extract the lambda into a function
featuresData=sc.textFile("features.txt")
featuresValue = featuresData.map(lambda line: Int(line.strip()))
mtx = zip(featuresValue.collect(),featuresData.collect())
data = map(lambda line: LabeledPoint(line[0], Vectors.sparse(line[1]), mtx))
saveAsLibSVMFile(data, "data.libsvm")
Was ist features.txt nur kategorische Daten oder alle Funktionen? und wird der Code mit dem Entfernen aller "val" in Python arbeiten. –
Alle Funktionen. Ich gehe davon aus, dass Sie bereits kategorische binäre Merkmale geändert haben. Der Code wird eine geringfügige Änderung benötigen, um mit PySpark –
Dank zu arbeiten. Ich habe einige Änderungen gemacht, aber ich bekomme einen Fehler mit Zip, der sagt "Zip Argument muss Iteration unterstützen. Auch versuchte ich, indem Sie Zip-Wort, aber dann Fehler ist map() muss mindestens 2 Argumente haben. Bitte helfen. –