特色
相比官方的json_value,该函数支持非标准化json,比如v是个object,但是非标准json会外套一层引号,内部有反引号.
eg: {"kkkk2": "{\"kkkk1\":\"vvvvvvv\"}" }
支持value为 100L 这种java格式的bigint. {"k":999L}文章来源:https://www.toymoban.com/news/detail-668342.html
基于jsonPath 方便,可以获取多层级内部值文章来源地址https://www.toymoban.com/news/detail-668342.html
代码实现
import com.alibaba.fastjson2.{JSONPath, JSONReader}
import org.apache.flink.table.functions.ScalarFunction
import scala.util.Try
import org.apache.flink.configuration.{Configuration, RestOptions}
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.table.api.Expressions.row
import org.apache.flink.table.api._
import org.apache.flink.table.api.bridge.scala.StreamTableEnvironment
object GetJsonObject {
def main(args: Array[String]): Unit = {
val conf = new Configuration
conf.setInteger(RestOptions.PORT, 38080)
val env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf)
val tEnv = Strea
到了这里,关于flink1.17 实现 udf scalarFunctoin get_json_object 支持 非标准化json的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!