j p*_*mar 3 dataframe apache-spark apache-spark-sql
我可以DataFrame从不同的SparkSessions访问a吗?
tl;dr不,不可能在SparkSessions.
ADataFrame存在于一个定义其可见性范围的单一对象中SparkSession(就像 a RDDinside一样SparkContext)。所有权SparkSession成为 a 的一个组成部分,您可以在类型构造DataFrame函数的定义中看到:Dataset
class Dataset[T] private[sql](
@transient val sparkSession: SparkSession, // <-- here
@DeveloperApi @InterfaceStability.Unstable @transient val queryExecution: QueryExecution,
encoder: Encoder[T])
extends Serializable {
Run Code Online (Sandbox Code Playgroud)
您可以使用属性访问 a 所属的SparkSession属性:DataFramesparkSession
scala> val df = Seq(1,2,3).toDF("id")
df: org.apache.spark.sql.DataFrame = [id: int]
scala> df.sparkSession
res0: org.apache.spark.sql.SparkSession = org.apache.spark.sql.SparkSession@4832813d
scala> df.sparkSession == spark
res1: Boolean = true
Run Code Online (Sandbox Code Playgroud)