我有一个包含很多.scala文件的项目。我想按如下方式使用Spark SQL:
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
val spark: SparkSession = SparkSession.builder()
.appName("My app")
.config("spark.master", "local")
.getOrCreate()
// For implicit conversions like converting RDDs to DataFrames
import spark.implicits._
将上述代码包装在单个对象中是一种好习惯,如:
object sparkSessX{
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
val spark: SparkSession = SparkSession.builder()
.appName("My App")
.config("spark.master", "local")
.getOrCreate()
// For implicit conversions like converting RDDs to DataFrames
import spark.implicits._
}
并且每个类都要扩展或导入该对象?
答案 0 :(得分:1)
我以前从未见过它,但是Scala开发人员使用Spark越多,我们就会看到越来越多的新设计模式出现。那可能是一个。
我认为您可以考虑隐含val spark
并通过此隐式上下文(作为函数的第二个参数集)将其传递到所需位置。