У меня есть этот фрагмент кода, который я использую для чтения файлов паркета:
def readParquetDS[T](paths: String*)(implicit sparkSession: SparkSession, encoder:Encoder[T]):Dataset[T] = {
sparkSession
.read
.schema(encoder.schema)
.parquet(paths: _*)
.as[T]
}
Я использую этот метод следующим образом:
val usersDS =readParquetDS[User](path)
, а класс случая пользователя - :
case class User(name: String, age: Int, address: String)
Даже если столбец адреса в паркетном файле отсутствует, исключение не создается, вместо этого я получаю набор данных со значением адреса как null во всех записях, что странно, потому что, как я понимаю, использование части «как [Пользователь]» также служит для добавления проверки.
Я использую Spark 2.4.5 с scala 2.12.10.
Есть идеи, как это сделать ошибка метода при отсутствии столбцов?