2016-05-29 21 views

cevap

14

DataFrame - Ek bir adımı aşan bir cevap İşte. Biz DataFrame oluşturmak için SQLContext kullanmak ve istenen nesne türünü kullanarak bir DataSet oluşturmak - Bir LabeledPoint bu durumda:

val sqlContext = new SQLContext(sc) 
val pointsTrainDf = sqlContext.createDataFrame(training) 
val pointsTrainDs = pointsTrainDf.as[LabeledPoint] 

Güncelleme Hiç bir SparkSession duydunuz mu? (Şu ana kadar bende hiç ..)

Görünüşe göre, SparkSession, Spark 2.0.0'da Tercih Edilen Yol (TM) ve ileriye doğru ilerliyor. İşte yeni (kıvılcım) dünya düzeni için güncellenmiş kodudur:

biz başardık (daha basit bir zero323 @ hangi kredi ait) altına yaklaşımların her ikisi de

Bildirimi yaklaşımları 2.0.0+ Kıvılcım SQLContext yaklaşımına kıyasla önemli tasarruf: Artık bir DataFrame oluşturmak için gerekli değildir. için Spark 2.0.0+ Kredi için

val sparkSession = SparkSession.builder().getOrCreate() 
val pointsTrainDf = sparkSession.createDataset(training) 
val model = new LogisticRegression() 
    .train(pointsTrainDs.as[LabeledPoint]) 

İkinci yol da zero323

val spark: org.apache.spark.sql.SparkSession = ??? 
import spark.implicits._ 

val trainDs = training.toDS() 

Geleneksel Kıvılcım 1.X ve önceki yaklaşımla

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()** 

bakınız @: How to store custom objects in Dataset? tarafından saygın @ zero323.

+0

Nasıl "training.toDS"? – zero323

+0

@ zero323 ah, görüyorum ki 'sqlContext._' içe aktarma ihtiyacım var. – javadba

+0

@ zero323 Yeterli bilgi eklediniz - kendi cevabınızı eklemekten çekinmeyin – javadba

İlgili konular