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

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

发布时间:2018-12-11 20:59:57 所属栏目:教程 来源:孙金城
导读:一、聊什么 上一篇《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):

  • 测试数据

(编辑:湖南网)

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

热点阅读