我正在尝试将一个项目从spark1.6迁移到spark2.4.5,我发现了一些关于这个主题的问题。我使用Scala2.11.12和ScalaMaven插件4.4.0作为编译器插件。
我有一个系统的三个类是以下。
实现:
class AddServiceDaoImpl(spark: SparkSession, configuration: Configuration) extends AddServiceDao {
import spark.implicits._
implicit val sqlc = spark.sqlContext
val generalOptions = Map of stuff...
override def findByXXX(key: RDD[(String, String)]): RDD[AddService] = {
if (key.isEmpty) return spark.sparkContext.emptyRDD[AddService]
val sql = "this is a String"
val df = sqlc
.read
.format("phoenix")
.options(generalOptions)
.option("query", sql)
.load()
val keysDf = key.toDF(Seq("column1", "column2"): _*)
keysDf.join(df, Seq("column1", "column2")).as[AddService].rdd
}
}
一种特质:
trait AddServiceDao extends Dao[AddService] {
def findByXXX(key: RDD[(String, String)]): RDD[AddService]
}
还有一个案例课:
case class AddService( firstField: String, secondField: String , and so on for 10 fields..)
现在还有一些元素:
在spark 1.6中,这曾经起作用
我还尝试导入sqlcontext隐式,但没有结果
case类在主体外定义,并声明隐式导入
我错过了什么?
暂无答案!
目前还没有任何答案,快来回答吧!