Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 将数据帧中的spark模式与类型T进行比较_Scala_Apache Spark_Apache Spark Sql_Spark Dataframe - Fatal编程技术网

Scala 将数据帧中的spark模式与类型T进行比较

Scala 将数据帧中的spark模式与类型T进行比较,scala,apache-spark,apache-spark-sql,spark-dataframe,Scala,Apache Spark,Apache Spark Sql,Spark Dataframe,我试图在编写Spark Dataframe时添加一些运行时类型检查,基本上我想确保Dataframe模式与类型T兼容,兼容并不意味着它必须完全相同。这是我的密码 def save[T: Encoder](dataframe: DataFrame, url: String): Unit = { val encoder = implicitly[Encoder[T]] assert(dataframe.schema == encoder.schema, s"Unabl

我试图在编写Spark Dataframe时添加一些运行时类型检查,基本上我想确保Dataframe模式与类型T兼容,兼容并不意味着它必须完全相同。这是我的密码

def save[T: Encoder](dataframe: DataFrame, url: String): Unit = {
        val encoder = implicitly[Encoder[T]]
        assert(dataframe.schema == encoder.schema, s"Unable to save schemas don't match")

        dataframe.write.parquet(url)
      }
目前我正在检查模式是否相等,如何检查它们是否与T类型兼容


对于compatible,我的意思是,如果我执行
dataframe.as[T]
,它就会工作(但我不想执行它,因为它非常昂贵)

使用相同的模式创建一个空的dataframe,并在其上调用
.as[T]
。如果它工作的模式应该是兼容的