code: def process_json_data():
      t_env = TableEnvironment.create(
          EnvironmentSettings.in_streaming_mode()
      )
  
      # define the source
      table = t_env.from_elements(
          elements=[
              (
                  1,
                  '{"name": "Flink", "tel": 123, "addr": {"country": "Germany", "city": "Berlin"}}',
              ),
              (
                  2,
                  '{"name": "hello", "tel": 135, "addr": {"country": "China", "city": "Shanghai"}}',
              ),
              (
                  3,
                  '{"name": "world", "tel": 124, "addr": {"country": "USA", "city": "NewYork"}}',
              ),
              (
                  4,
                  '{"name": "PyFlink", "tel": 32, "addr": {"country": "China", "city": "Hangzhou"}}',
              ),
          ],
          schema=["id", "data"],
      )
  
      # define the sink
      t_env.create_temporary_table(
          "sink",
          TableDescriptor.for_connector("print")
          .schema(
              Schema.new_builder()
              .column("id", DataTypes.BIGINT())
              .column("data", DataTypes.STRING())
              .build()
          )
          .build(),
      )
  
      table = table.select(
          col("id"),
          col("data").json_value("$.addr.country", DataTypes.STRING()),
      )
  
      # execute
      table.execute_insert("sink").wait()
  
imports: import logging
  import sys
  from pyflink.table import EnvironmentSettings, TableEnvironment, DataTypes, TableDescriptor, Schema
  from pyflink.table.expressions import col
label_desc: Use image node_id 1 for calling a global function with example usage: process_json_data() without return types