加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Apache Flink 漫谈系列(10) - JOIN LATERAL

发布时间:2018-12-17 03:43:09 所属栏目:教程 来源:孙金城
导读:一、聊什么 上一篇《Apache Flink 漫谈系列 - JOIN算子》我们对最常见的JOIN做了详尽的分析,本篇介绍一个特殊的JOIN,那就是JOIN LATERAL。JOIN LATERAL为什么特殊呢,直观说因为JOIN的右边不是一个实际的物理表,而是一个VIEW或者Table-valued Funciton

上面定义的核心是要求用户实现eval方法,我们写一个具体示例。

  • 示例
  1. // 定义一个简单的UDTF返回类型,对应接口上的 T 
  2. case class SimpleUser(name: String, age: Int) 
  3. // 继承TableFunction,并实现evale方法 
  4. // 核心功能是解析以#分割的字符串 
  5. class SplitTVF extends TableFunction[SimpleUser] { 
  6. // make sure input element's format is "<string>#<int>" 
  7. def eval(user: String): Unit = { 
  8. if (user.contains("#")) { 
  9. val splits = user.split("#") 
  10. collect(SimpleUser(splits(0), splits(1).toInt)) 
  11. }} 

(2) 示例(完整的ITCase):

  • 测试数据

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读