直播平臺原始碼,FlinkSQL實現行轉列
直播平臺原始碼,FlinkSQL實現行轉列
1、使用 UNNEST 解析
select name,course,score from ods_kafka_student_scores CROSS JOIN UNNEST(`list`) AS t (course,score); select name,course,score from ods_kafka_student_scores, UNNEST(`list`) AS t (course,score); select name,course,score from ods_kafka_student_scores LEFT JOIN UNNEST(`list`) AS t (course,score) on true;
2、使用自定義 UDTF 解析
UDTF(自定義表值函式),自定義表值函式。
將 0 個、1 個或多個標量值作為輸入引數(可以是變長引數)。與自定義的標量函式類似,但與標量函式不同。表值函式可以返回任意數量的行作為輸出,而不僅是 1 個值。返回的行可以由 1 個或多個列組成。呼叫一次函式輸出多行或多列資料。
必須繼承 TableFunction 基類,並實現一個或者多個名為 eval 的方法。
在使用 UDTF 時,需要帶上 LATERAL TABLE兩個關鍵字.
@FunctionHint(output = @DataTypeHint("ROW<course STRING,score INT>")) public class ParserJsonArrayTest extends TableFunction<Row> { private static final Logger LOG = Logger.getLogger(ParserJsonArrayTest.class); public void eval(String value) { try { JSONArray arrays = JSONArray.parseArray(value); Iterator<Object> iterator = arrays.iterator(); while (iterator.hasNext()) { JSONObject jsonObject = (JSONObject) iterator.next(); String course = jsonObject.getString("course"); Integer score = jsonObject.getInteger("score"); collect(Row.of(course,score)); } } catch (Exception e) { LOG.error("Parser json failed :" + e.getMessage()); } } }
自定義 UDTF 解析的時候,就不需要把 list 欄位定義成 ARRAY 型別了,直接定義成 STRING 型別就可以了,並且這種方式會更加的靈活,比如還需要過濾資料或者更復雜的一些操作時都可以在 UDTF 裡面完成.
以上就是 直播平臺原始碼,FlinkSQL實現行轉列,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2987357/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播平臺原始碼開發,簽到功能的實現原始碼
- 直播平臺原始碼,迴圈滾動RecyclerView的實現原始碼View
- 直播平臺原始碼,Android實現密碼顯示與隱藏原始碼Android密碼
- 直播平臺搭建原始碼,bootstrap實現圖片輪播效果原始碼boot
- 成品直播原始碼,實現在平臺內部的搜尋原始碼
- 直播平臺原始碼,Android自定義View實現呼吸燈效果原始碼AndroidView
- 直播平臺原始碼,RecycleView實現item重疊水平滑動原始碼View
- 影片直播app原始碼,JS使用陣列方法實現字串反轉APP原始碼JS陣列字串
- app直播原始碼,平臺登入頁面實現和修改密碼頁面實現APP原始碼密碼
- 直播平臺原始碼,純JS實現左右滑動輪播圖原始碼JS
- 直播平臺搭建原始碼,使用EasyExcel實現匯入匯出功能原始碼Excel
- 直播平臺搭建原始碼,純js實現編輯器撤消/重做原始碼JS
- 直播平臺原始碼,多種方法實現圖片複雜排列原始碼
- 為了直播流暢,實現直播商城原始碼的轉碼原始碼
- 直播平臺原始碼,js 時間戳轉為日期格式原始碼JS時間戳
- 直播平臺原始碼,快速獲取當前狀態列高度原始碼
- 直播平臺原始碼,bmob_gudongStpeAdd原始碼
- PHP直播平臺原始碼搭建教程PHP原始碼
- 一對一直播平臺原始碼,如何實現圖片釋出原始碼
- 直播帶貨平臺原始碼,利用ProgressBar實現垂直、水平進度條原始碼
- 解析arrify 轉陣列實現示例原始碼陣列原始碼
- 直播平臺原始碼,vue+vue-fullpage實現整屏滾動頁面原始碼Vue
- 快速運營搭建直播軟體平臺直播原始碼!原始碼
- 直播平臺原始碼,簡單實現 彈出確認 取消對話方塊原始碼
- 直播平臺原始碼,數字化大屏地圖輪播的實現echarts原始碼地圖Echarts
- 直播平臺搭建原始碼,java相簿製作原始碼Java
- 直播系統原始碼--搭建直播平臺的奠基石原始碼
- 直播原始碼網站,實現文字自動翻轉效果原始碼網站
- 直播app原始碼,跳轉站外連結或平臺內部跳轉頁面APP原始碼
- 直播平臺原始碼,上傳本地圖片實現個人名片背景圖輪播原始碼地圖
- FlinkSQL使用自定義UDTF函式行轉列-IK分詞器SQL函式分詞
- 直播原始碼如何搭建一個屬於自己的直播平臺?原始碼
- 直播平臺搭建原始碼,uniapp progress進度條原始碼APP
- 直播平臺原始碼,Uniapp text 樣式設定原始碼APP
- 直播平臺原始碼,圖片放大瀏覽功能原始碼
- 直播平臺原始碼,頂部標籤欄及內容列表的設計與實現原始碼
- 直播平臺原始碼,簡訊驗證碼傳送demo原始碼
- 直播平臺原始碼,Flutter 自定義 虛線 分割線原始碼Flutter