Ho un RDD[LabeledPoint]
destinato a essere utilizzato all'interno di una pipeline di apprendimento automatico. Come convertire tale RDD
in un DataSet
? Nota le nuove apis spark.ml
richiedono input nel formato Dataset
.Come creare un set di dati Spark da un RDD
risposta
Ecco una risposta che attraversa un passaggio aggiuntivo: DataFrame
. Usiamo il SQLContext
per creare un DataFrame
e quindi creare un DataSet
utilizzando il tipo di oggetto desiderato - in questo caso un LabeledPoint
:
val sqlContext = new SQLContext(sc)
val pointsTrainDf = sqlContext.createDataFrame(training)
val pointsTrainDs = pointsTrainDf.as[LabeledPoint]
Aggiornamento Mai sentito parlare di un SparkSession
? (neanch'io fino ad ora ..)
Quindi apparentemente il SparkSession
è il modo preferito (TM) in Spark 2.0.0 e andare avanti. Ecco il codice aggiornato per il nuovo (scintilla) ordine mondiale:
Spark 2.0.0+ avvicina
Avviso in entrambi gli approcci di seguito (più semplice di cui uno di credito @ zero323) abbiamo realizzato un risparmi importanti rispetto all'approccio SQLContext
: non è più necessario creare prima un DataFrame
.
val sparkSession = SparkSession.builder().getOrCreate()
val pointsTrainDf = sparkSession.createDataset(training)
val model = new LogisticRegression()
.train(pointsTrainDs.as[LabeledPoint])
Secondo modo per Spark 2.0.0+ credito a @ zero323
val spark: org.apache.spark.sql.SparkSession = ???
import spark.implicits._
val trainDs = training.toDS()
1.X tradizionale Spark e l'approccio precedente
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()**
Vedi anche: How to store custom objects in Dataset? da lo stimato @ zero323.
- 1. Come creare Spark RDD da un iteratore?
- 2. Creazione di un dataframe Spark da un RDD di liste
- 3. Come creare la raccolta di RDD da RDD?
- 4. Scala Spark: come creare un RDD da un elenco di stringhe e convertirlo in DataFrame
- 5. Spark: creazione di un RDD da un servizio REST
- 6. Esecuzione di ricerca/traduzione in una Spark RDD o dati telaio utilizzando un altro RDD/df
- 7. Apache Spark: Come posso convertire uno Spark DataFrame in un RDD con tipo RDD [(Tipo1, Tipo2, ...)]?
- 8. Creare XML da un set di dati gerarchica in C#
- 9. In che modo Spark decide come partizionare un RDD?
- 10. Lettura di dati da SQL Server utilizzando Spark SQL
- 11. RDD Aggregate in spark
- 12. Come posso unire efficientemente un grande rdd ad una grande rdd in spark?
- 13. Rimodellare/dati di snodo Spark RDD e/o scintille DataFrames
- 14. Implementazione di Spark RDD personalizzato in Java
- 15. Come ottenere l'ennesima riga di Spark RDD?
- 16. Apache Spark: come creare una matrice da un DataFrame?
- 17. Spark JSON campo di testo per RDD
- 18. Spark: come l'unione di un elenco <RDD> a RDD
- 19. Come aggiungere una nuova colonna a un RDD Spark?
- 20. Mock a Spark RDD nei test dell'unità
- 21. Campionamento di un grande set di dati distribuiti utilizzando pyspark/spark
- 22. Come condividere Spark RDD tra 2 contesti Spark?
- 23. Come creare una mappa/un set immutabile da un seq?
- 24. Treat Spark RDD come plain Seq
- 25. scrivere un RDD in HDFS in un contesto di spark-streaming
- 26. Come convertire un set di dati Scikit-learn in un set di dati di Pandas?
- 27. Spark Scala ottenere i dati da rdd.foreachPartition
- 28. Come si ottiene un numero di riga SQL equivalente per un RDD Spark?
- 29. Spark - Filtri multipli su RDD in un passaggio
- 30. Filtro basato su un altro RDD in Spark
E a proposito di 'training.toDS'? – zero323
@ zero323 ah, vedo che devo "importare sqlContext._". Aggiornare la risposta. – javadba
@ zero323 Hai aggiunto informazioni sufficienti - sentiti libero di aggiungere la tua risposta – javadba