下面的示例代碼嘗試將一些case對(duì)象放入數(shù)據(jù)框中。該代碼包括使用此特征的案例對(duì)象層次結(jié)構(gòu)和案例類(lèi)的定義:import org.apache.spark.{SparkContext, SparkConf}import org.apache.spark.sql.SQLContextsealed trait Somecase object AType extends Somecase object BType extends Somecase class Data( name : String, t: Some)object Example { def main(args: Array[String]) : Unit = { val conf = new SparkConf() .setAppName( "Example" ) .setMaster( "local[*]") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) import sqlContext.implicits._ val df = sc.parallelize( Seq( Data( "a", AType), Data( "b", BType) ), 4).toDF() df.show() }} 執(zhí)行代碼時(shí),不幸的是遇到以下異常:java.lang.UnsupportedOperationException: Schema for type Some is not supported問(wèn)題是否可以為某些類(lèi)型(此處為type Some)添加或定義模式?是否存在另一種方法來(lái)代表這種枚舉?我試圖Enumeration直接使用,但也沒(méi)有成功。(見(jiàn)下文)的代碼Enumeration:object Some extends Enumeration { type Some = Value val AType, BType = Value}提前致謝。我希望最好的方法是不要使用字符串。
如何在Spark SQL中為自定義類(lèi)型定義架構(gòu)?
阿波羅的戰(zhàn)車(chē)
2019-10-21 11:16:41