比较数据帧到类型 T 的 Spark 架构



我在编写 Spark 数据帧时尝试添加一些运行时类型检查,基本上我想确保 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 类型兼容?

使用兼容,我的意思是如果我执行dataframe.as[T]它将起作用(但我不想执行它,因为它非常昂贵)

创建一个具有相同架构的空数据帧,并对其调用.as[T]。如果它有效,则架构应该是兼容的!

相关内容

  • 没有找到相关文章

最新更新