Для метода выборочного метода Estimator transformSchema мне нужно иметь возможность сравнить схему фрейма входных данных с схемой, определенной в классе case. Обычно это может быть выполнено как Generate a Spark StructType/Schema from a case class, как описано ниже. Однако, используются неправильная допустимость пустой:Исправленная схема из класса case с правильной нулеутоляемостью
Реальная схема ФРА презюмирован на spark.read.csv().as[MyClass]
может выглядеть следующим образом:
root
|-- CUSTOMER_ID: integer (nullable = false)
и класс корпуса:
case class MySchema(CUSTOMER_ID: Int)
Для сравнения я использую:
val rawSchema = ScalaReflection.schemaFor[MySchema].dataType.asInstanceOf[StructType]
if (!rawSchema.equals(rawDf.schema))
К сожалению, это всегда дает false
, Как новая схема вручную вывести из класса случае является установка обнуляемым для true
(потому что JA java.Integer на самом деле может быть пустым)
root
|-- CUSTOMER_ID: integer (nullable = true)
Как я могу указать nullable = false
при создании схемы?