Ich versuche, einige Runtime-Typ-Prüfungen beim Schreiben eines Spark Dataframe hinzuzufügen, im Grunde möchte ich sicherstellen, dass das DataFrame-Schema mit einem Typ T kompatibel ist, bedeutet nicht, dass es muss genau gleich sein. Hier ist mein CodeVergleichen Sie Spark-Schema von Dataframe zum Typ 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)
}
Derzeit bin ich überprüfen, ob die Schemata Gleichen sind, wie könnte ich überprüfen, ob sie mit dem Typ T kompatibel sind?
Mit kompatibel Ich meine, wenn ich dataframe.as[T]
ausführen, es wird funktionieren (aber ich mag nicht, dass auszuführen, da es recht teuer ist)