Comment créer une Étincelle Dataset à partir d'un CA
J'ai un RDD[LabeledPoint] destiné à être utilisé dans une machine d'apprentissage pipeline. Comment convertir que RDD à un DataSet? La Note la plus récente spark.ml api nécessitent des entrées dans le Dataset format.
Ici est une réponse qui traverse une étape supplémentaire - le DataFrame. Nous utilisons le SQLContext pour créer un DataFrame et puis créer un DataSet à l'aide de l'objet désiré type - dans ce cas, un LabeledPoint:
val sqlContext =newSQLContext(sc)val pointsTrainDf = sqlContext.createDataFrame(training)val pointsTrainDs = pointsTrainDf.as[LabeledPoint]
Mise à jour Jamais entendu parler d'un SparkSession ? (je n'en avais jusqu'à maintenant..)
Donc, apparemment, la SparkSession est le Manière Préférée (TM) dans Spark 2.0.0 et aller de l'avant. Voici le code mis à jour pour la nouvelle (allumage) de l'ordre du monde:
Étincelle 2.0.0+ approches
Avis dans les deux ci-dessous approches (plus simple de crédit @zero323) que nous avons accompli une des économies importantes par rapport à la SQLContext approche: il n'est plus nécessaire de créer d'abord un DataFrame.
val sparkSession =SparkSession.builder().getOrCreate()val pointsTrainDf = sparkSession.createDataset(training)val model =newLogisticRegression().train(pointsTrainDs.as[LabeledPoint])
Deuxième façon de Spark 2.0.0+ de Crédit à @zero323
val spark: org.apache.spark.sql.SparkSession=???import spark.implicits._
val trainDs = training.toDS()
Traditionnel Étincelle 1.X et antérieures approche
val sqlContext =newSQLContext(sc)//Note this is *deprecated* in 2.0.0import sqlContext.implicits._
val training = splits(0).cache()val test = splits(1)val trainDs = training**.toDS()**
Que diriez -training.toDS? ah, je vois, j'ai besoin de import sqlContext._.La mise à jour de la réponse. Donc, vous avez remarqué que le commentaire d'il y a une semaine . J'étais inquiet que vous prenez trop au sérieux ;). Il a été conçu comme le respect de vos connaissances. Vous disposez également d'un v approche agréable et d'attitude. Me de nice? Vous devez l'avoir confondu avec moi, avec mes bons lits jumeaux 🙂 BTW: il pourrait être une bonne idée de lien stackoverflow.com/q/36648128/1560062 ici. L'ont fait. Thx pour l'aider.
Ici est une réponse qui traverse une étape supplémentaire - le
DataFrame
. Nous utilisons leSQLContext
pour créer unDataFrame
et puis créer unDataSet
à l'aide de l'objet désiré type - dans ce cas, unLabeledPoint
:Mise à jour Jamais entendu parler d'un
SparkSession
? (je n'en avais jusqu'à maintenant..)Donc, apparemment, la
SparkSession
est le Manière Préférée (TM) dans Spark 2.0.0 et aller de l'avant. Voici le code mis à jour pour la nouvelle (allumage) de l'ordre du monde:Étincelle 2.0.0+ approches
Avis dans les deux ci-dessous approches (plus simple de crédit @zero323) que nous avons accompli une des économies importantes par rapport à la
SQLContext
approche: il n'est plus nécessaire de créer d'abord unDataFrame
.Deuxième façon de Spark 2.0.0+ de Crédit à @zero323
Traditionnel Étincelle 1.X et antérieures approche
Voir aussi: Comment stocker des objets personnalisés dans le Dataset? par l'honorable @zero323 .
training.toDS
?ah, je vois, j'ai besoin de
import sqlContext._
.La mise à jour de la réponse.Donc, vous avez remarqué que le commentaire d'il y a une semaine . J'étais inquiet que vous prenez trop au sérieux ;). Il a été conçu comme le respect de vos connaissances. Vous disposez également d'un v approche agréable et d'attitude.
Me de nice? Vous devez l'avoir confondu avec moi, avec mes bons lits jumeaux 🙂 BTW: il pourrait être une bonne idée de lien stackoverflow.com/q/36648128/1560062 ici.
L'ont fait. Thx pour l'aider.
OriginalL'auteur javadba