如何从包含选项类型的Scala case类创建可为空的Flink表列

如何从包含选项类型的Scala case类创建可为空的Flink表列,scala,apache-flink,Scala,Apache Flink,我想从包含选项值的案例类集合中创建一个数据集或数据流。 在创建的表中,由选项值生成的列应包含NULL或实际原语值 这就是我所尝试的: 导入org.apache.flink.api.scala.ExecutionEnvironment 导入org.apache.flink.streaming.api.scala_ 导入org.apache.flink.table.api.TableEnvironment 导入org.apache.flink.table.api.scala_ 导入org.apach

我想从包含选项值的案例类集合中创建一个数据集或数据流。 在创建的表中,由选项值生成的列应包含NULL或实际原语值

这就是我所尝试的:

导入org.apache.flink.api.scala.ExecutionEnvironment 导入org.apache.flink.streaming.api.scala_ 导入org.apache.flink.table.api.TableEnvironment 导入org.apache.flink.table.api.scala_ 导入org.apache.flink.types.Row 对象选项示例{ case类Eventtime:Timestamp,id:String,value:Option[Int] def mainargs:数组[字符串]:单位={ val env=ExecutionEnvironment.getExecutionEnvironment val tEnv=TableEnvironment.getTableEnvironmentenv val数据=环境fromCollectionSeq EventTimestamp.valueOf2018-01-01 00:01:00,a,Some3, EventTimestamp.value2018-01-01 00:03:00,a,无, EventTimestamp.valueOf2018-01-01 00:03:00,b,Some7, EventTimestamp.valueOf2018-01-01 00:02:00,a,Some5 val table=tEnv.fromDataSetdata table.printSchema //根 //|-时间:时间戳 //|-id:String //|-值:选项[整数] val结果=表格 .groupBy'id .选择'id',value.avg作为'averageValue' //打印结果 val ds:DataSet[Row]=result.toDataSet 印刷品 } } 但这会导致聚合部分出现异常

org.apache.flink.table.api.ValidationException:表达式avg'值在输入检查时失败:avg需要数字类型,请在此处获取选项[Integer]

…因此,使用这种方法,选项不会被转换为如上所述的带有null的数值类型

我怎样才能用Flink做到这一点

我来自ApacheSpark,使用带有选项的case类创建的数据集具有这种行为。我想与弗林克取得类似的成就