Проверка столбцов набора данных с помощью класса case - PullRequest
0 голосов
/ 05 мая 2020

У меня есть этот фрагмент кода, который я использую для чтения файлов паркета:

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.

Есть идеи, как это сделать ошибка метода при отсутствии столбцов?

...