如何通过 Flink Row 中的 FieldName 获取值?
How to get value by FieldName in a Flink Row?
我有一个方法def process(row: org.apache.flink.types.Row, fieldName: String) : Unit = ???
而我要进行的处理需要我提取一个名为 fieldName
的字段。我可以看到 Row api 允许您按顺序提取,但不能按名称提取。
我想用户必须向我传递架构信息,所以该方法看起来像 def process(row: org.apache.flink.types.Row, rowSchema: ???, fieldName: String) : Unit = ???
。
我查看了 org.apache.flink.table.types.logical.RowType
和 TypeInformation
的架构信息,但它们似乎都不正确。去这里最好的方法是什么?
看来我需要 org.apache.flink.api.java.typeutils.RowTypeInfo
。它有方法 getFieldIndex(String fieldName)
我有一个方法def process(row: org.apache.flink.types.Row, fieldName: String) : Unit = ???
而我要进行的处理需要我提取一个名为 fieldName
的字段。我可以看到 Row api 允许您按顺序提取,但不能按名称提取。
我想用户必须向我传递架构信息,所以该方法看起来像 def process(row: org.apache.flink.types.Row, rowSchema: ???, fieldName: String) : Unit = ???
。
我查看了 org.apache.flink.table.types.logical.RowType
和 TypeInformation
的架构信息,但它们似乎都不正确。去这里最好的方法是什么?
看来我需要 org.apache.flink.api.java.typeutils.RowTypeInfo
。它有方法 getFieldIndex(String fieldName)