Ich habe eine RDD[LabeledPoint]
, die in einer maschinellen Lern-Pipeline verwendet werden soll. Wie konvertieren wir das in ein DataSet
? Beachten Sie, dass die neueren spark.ml
Apis Eingaben im Format Dataset
erfordern.So erstellen Sie ein Spark-Dataset von einer RDD
Antwort
Hier ist eine Antwort, die einen zusätzlichen Schritt durchläuft - die DataFrame
. Wir verwenden die SQLContext
einen DataFrame
zu erstellen und dann eine DataSet
mit dem gewünschten Objekttyp erstellen - in diesem Fall ein LabeledPoint
:
val sqlContext = new SQLContext(sc)
val pointsTrainDf = sqlContext.createDataFrame(training)
val pointsTrainDs = pointsTrainDf.as[LabeledPoint]
-Update Schon mal was von einem SparkSession
gehört? (Weder hatte ich bis jetzt ..)
Also scheinbar ist die SparkSession
die bevorzugte Weg (TM) in Spark 2.0.0 und voran. Hier ist die aktualisierte Code für die neue (Funke) Weltordnung:
Funken 2.0.0+
Hinweis in den beiden folgenden Ansätze Ansätze (einfacher von denen Kredit @ zero323) wir erreicht haben ein wichtige Einsparungen gegenüber dem SQLContext
Ansatz: es ist nicht mehr notwendig, zuerst eine DataFrame
zu erstellen.
val sparkSession = SparkSession.builder().getOrCreate()
val pointsTrainDf = sparkSession.createDataset(training)
val model = new LogisticRegression()
.train(pointsTrainDs.as[LabeledPoint])
Zweiter Weg für Spark 2.0.0+ Credit @ zero323
val spark: org.apache.spark.sql.SparkSession = ???
import spark.implicits._
val trainDs = training.toDS()
Traditionelle Funken 1.x und früheren Ansatz
val sqlContext = new SQLContext(sc) // Note this is *deprecated* in 2.0.0
import sqlContext.implicits._
val training = splits(0).cache()
val test = splits(1)
val trainDs = training**.toDS()**
Siehe auch: How to store custom objects in Dataset? durch das geschätzte @ zero323.
- 1. Scala Spark: So erstellen Sie eine RDD aus einer Liste von Zeichenfolge und konvertieren in Datenrahmen
- 2. So erstellen Sie ein Bild von einer UIView/UIScrollView
- 3. So erstellen Sie ein Dreieck von DIV
- 4. So erstellen Sie ein NSMutableArray von Fließkommawerten
- 5. So erstellen Sie ein Mitarbeiterverzeichnis
- 6. einen Funken Datenrahmen von einer RDD von Listen erstellen
- 7. Fehler beim Erstellen von Datenrahmen von RDD
- 8. So erstellen Sie ein Blockdiagramm
- 9. So erstellen Sie ein Modal
- 10. So erstellen Sie ein Javascript DropTree
- 11. So ersetzen Sie den RDD-Typ von [String] durch Werte vom RDD-Typ [String, Int]
- 12. So erstellen Sie ein Protokolldiagramm in Matlab
- 13. So erstellen Sie ein leeres jQuery-Ergebnis
- 14. So erstellen Sie ein Textfeld mit Dezimalwert
- 15. So erstellen Sie ein benutzerdefiniertes DataGridViewCell
- 16. So erstellen Sie ein Sidebar-Menü
- 17. Spark: Objekt-RDD aus Liste erstellen <Object> RDD
- 18. So erstellen Sie ein globales Parameterobjekt
- 19. So erstellen Sie ein docker-eingeschränktes Netzwerk
- 20. So erstellen Sie ein UIButton programmgesteuert
- 21. Wie ein RDD eines mehrere Fallklassen in RDD ihrer Komponenten
- 22. So erstellen Sie ein Eingabetextfeld in JavaScript
- 23. So erstellen Sie ein Android-Launcher-Symbol
- 24. So erstellen Sie ein Pure-Python-Rad
- 25. UWP - So erstellen Sie ein TokenAutoComplete-Steuerelement
- 26. So erstellen Sie ein Popup-Fenster
- 27. So erstellen Sie ein Köcherdiagramm in Polarkoordinaten
- 28. So erstellen Sie ein Open-Source-Repository
- 29. So erstellen Sie ein Paginierungssystem in Hexo
- 30. So erstellen Sie ein Java-Gravel-Projekt
Wie wäre es mit 'training.toDS'? – zero323
@ zero323 ah, ich sehe, dass ich 'sqlContext._' importieren muss.Updating die Antwort. – javadba
@ zero323 Sie haben genügend Informationen hinzugefügt - fühlen Sie sich frei, Ihre eigene Antwort hinzuzufügen – javadba