加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Apache Flink 漫谈系列 - JOIN LATERAL

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

上面定义的核心是要求用户实现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):

  • 测试数据

(编辑:开发网_郴州站长网)

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

热点阅读