scala – SQLContext暗示
我正在学习火花和斯卡拉.我精通
java,但不是scala.我正在阅读关于spark的教程,并遇到了以下代码行,但尚未解释:
val sqlContext = new org.apache.spark.sql.SQLContext(sc) import sqlContext.implicits._ (sc是SparkContext实例) 我知道scala implicits背后的概念(至少我想我知道).有人可以向我解释上面的import语句究竟是什么意思吗?在实例化sqlContext实例时,哪些含义绑定到sqlContext实例?这些隐含是否在SQLContext类中定义? 编辑 val sqlc = new SQLContext(sc) import sqlContext.implicits._ 在上面的代码中.究竟什么是sqlContext,它在哪里定义? 解决方法
从
ScalaDoc开始:
sqlContext.implicits包含Scala中可用的“(Scala特定的)隐式方法,用于将常见的Scala对象转换为DataFrame.” 并在Spark programming guide中解释: // this is used to implicitly convert an RDD to a DataFrame. import sqlContext.implicits._ 例如,在下面的代码中.toDF()将不起作用,除非您将导入sqlContext.implicits: val airports = sc.makeRDD(Source.fromFile(airportsPath).getLines().drop(1).toSeq,1) .map(s => s.replaceAll(""","").split(",")) .map(a => Airport(a(0),a(1),a(2),a(3),a(4),a(5),a(6))) .toDF()
是的,它们是在SqlContext类中的对象含义中定义的,它扩展了SQLImplicits.scala.它看起来在那里定义了两种类型的隐式转换: > RDD到DataFrameHolder转换,它允许使用上面提到的rdd.toDf(). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |