Optional
тип обозначает объекты, которые могут быть неопределенными (None
).Так что это в основном применимо к данным.
В вашем примере StructField
нет позиции, в которой он мог бы быть осмысленно использован:
Схема должна быть определена так, что
Option[StructField]
и не предоставляет никакой информации о типе, не является семантически правдивым и что-либо вокруг
Option[DataType]
или
Option[IntegerType]
то есть
StructField("fieldn", Some(IntegerType): )
будетиметь еще меньший смысл - либо создание объекта с неясной семантикой (прежней), либо невозможным API.
Фундаментально StructType
представляет обязательные метаданные.Он не может быть пропущен по замыслу, и поэтому Option
не имеет места там.