簡體   English   中英

Spark 1.4.1和Scala:從頭開始創建DataFrame

[英]Spark 1.4.1 and Scala: create DataFrame from scratch

我已經創建了一堆我需要用於測試目的的案例類。 我當時做了很多這樣的陳述:

case class Bar(id: Int, desc: String)
val foo = Bar(1, "baz")
val bar = sc.makeRDD(Array(foo)).toDF

這樣可行。 因為我正在做很多這些調用,所以我認為創建一個函數會很好:

def dfify[T: ClassTag](obj: T): DataFrame = sc.makeRDD(Array(obj)).toDF

但是,這給了我以下錯誤:

error: value toDF is not a member of org.apache.spark.rdd.RDD[T]

我試着加入勢必牛逼<上下文:產品的建議在這里以稍微不同的背景,但是這並不能幫助。

問題是沒有它的功能,但是讓一些重復的位稍微簡化會很好。 我認為需要1分鍾的東西已經花了很多而沒有結果。

我在Spark 1.4.1上,我無法改變它,因此我無法使用createDataFrame()

想法?

您還必須創建一個SQLContext並導入其SQLContext ,否則將RDD隱式轉換為DataFrameHolder (具有toDF方法)不在范圍內。

另一個問題是 - ClassTag還不夠,還需要TypeTag

此代碼編譯和工作:

import scala.reflect.runtime.universe._
import scala.reflect.ClassTag

val sqlContext = new SQLContext(sc)
import sqlContext.implicits._

def dfify[T <: Product : ClassTag : TypeTag](obj: T): DataFrame = sc.makeRDD(Array(obj)).toDF()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM