Здравствуйте, я читаю данные JSON из S3 с помощью Flink, затем анализирую входные данные для класса наблюдения.Проблема заключается в том, что когда строка JSON имеет какое-либо нулевое значение, класс case не принимает его, поскольку каждое поле класса case имеет тип (Int, String и т. Д.).
При поиске решения я обнаружил, что могуиспользуйте Option, чтобы включить нулевые значения в класс case, и это работает, но проблема возникает, когда я пытаюсь выполнить запрос после преобразования из набора данных в таблицу.
Если я пытаюсь получить строки, в которых оценка равна нулю,Я ничего не получил, потому что Option Type представляет объект.
//Case class that I used to parse a JSON
case class TestTableSchema(
id: String,
score: Option[Double]
)
val data: Dataset[TestTableSchema] = ...
tableEnv.registerDataSet("test_table", data)
val result = tableEnv.sqlQuery("""
|SELECT *
|FROM test_table
|WHERE score IS NULL
""".stripMargin
)
Также я проверил, что могу использовать тип данных Row вместо класса case, который принимает нулевые значения, но я не нашел какого-либо примера дляреализовать его.
Как я могу обрабатывать нулевые значения, когда я хочу иметь схему?