日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

自定義標量函數(UDSF)

更新時間:

本文為您介紹Python自定義標量函數(UDSF)的開發、注冊和使用流程。

定義

自定義標量函數(UDSF)將0個、1個或多個標量值映射到一個新的標量值。輸入與輸出是一對一的關系,即讀入一行數據,寫出一條輸出值。

使用限制

由于Flink全托管產品受部署環境和網絡環境等因素的影響,所以開發Python自定義函數時,需要注意以下限制:

  • 僅支持開源Flink V1.12及以上版本。

  • Flink全托管集群上已預裝了Python 3.7.9,因此需要您在Python 3.7.9版本開發代碼。

  • Flink全托管運行環境使用的是JDK 1.8,如果Python作業中依賴第三方JAR包,請確保JAR包兼容JDK 1.8。

  • 僅支持開源Scala V2.11版本,如果Python作業中依賴第三方JAR包,請確保使用Scala V2.11對應的JAR包依賴。

UDSF開發

說明

Flink為您提供了Python自定義函數示例,便于您快速開發自定義函數。Flink Python自定義函數示例中包含了Python UDSF、Python UDAF和Python UDTF的實現。本文以Windows操作系統為例,為您介紹如何進行UDSF開發。

  1. 下載并解壓python_demo-master示例到本地。

    說明

    python_demo-master屬于第三方搭建的網站,訪問時可能會存在無法打開或訪問延遲的問題。

  2. 在PyCharm中,單擊file > open,打開剛才解壓縮完成的python_demo-master

  3. 雙擊打開\python_demo-master\udx\udfs.py后,根據您的業務,修改udfs.py

    該示例中,sub_string定義了獲取每條數據中從begin~end位的字符的代碼。

    from pyflink.table import DataTypes
    from pyflink.table.udf import udf
    
    
    @udf(result_type=DataTypes.STRING())
    def sub_string(s: str, begin: int, end: int):
        return s[begin:end]
  4. 在下載文件中udx所在的目錄(即\python_demo-master目錄)下執行如下命令打包文件。

    zip -r python_demo.zip udx

    \python_demo-master\目錄下會出現python_demo.zip的ZIP包,即代表完成了Python UDSF的開發工作。

UDSF注冊

UDSF注冊過程,請參見管理自定義函數(UDF)

UDSF使用

在完成注冊UDSF后,您就可以使用UDSF,詳細的操作步驟如下。

  1. Flink SQL作業開發。詳情請參見SQL作業開發

    獲取ASI_UDSF_Source表中a字段中每行字符串中第2~4位的字符,代碼示例如下。

    CREATE TEMPORARY TABLE ASI_UDSF_Source (
      a VARCHAR,
      b INT,
      c INT
    ) WITH (
      'connector' = 'datagen'
    );
    
    CREATE TEMPORARY TABLE ASI_UDSF_Sink (
      a VARCHAR
    ) WITH (
      'connector' = 'blackhole'
    );
    
    INSERT INTO ASI_UDSF_Sink
    SELECT ASI_UDSF(a,2,4)
    FROM ASI_UDSF_Source;
  2. 運維中心 > 作業運維頁面,單擊目標作業名稱操作列的啟動

    啟動成功后,ASI_UDSF_Sink表每行會被插入ASI_UDSF_Source表中a字段每行字符串的第2~4位字符。