flink equalTo 的 scala 语法不太理解,麻烦老师解答

flink equalTo 的 scala 语法不太理解,麻烦老师解答

https://img1.sycdn.imooc.com//climg/622f17dc0985c6af16950789.jpg

请问老师,图中标注的语法是怎么理解的?


我的理解是,equalTo 返回的是一个 function,如果这个 function 没有返回值的话我还能理解,但是这个匿名 function 的返回值(first._1, first._2, second._2)是一个 Tuple 了,后续怎么能又调用 print 呢?所以我可能理解错了,麻烦老师指教一下~

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

代码拆开,完整一点的写法是这样的,这样应该好理解了

equalsTo返回的是JoinDataSet类型的数据结构。

后面是调用的JoinDataSet中的apply方法,apply可以省略不写。

val joinDataSet = text1.join(text2)
  .where(0)
  .equalTo(0)

val resDataSet = joinDataSet.apply{ (first, second) => {
  (first._1, first._2, second._2)
  }
}

resDataSet.print()


提问者 ischand 2022-03-14 19:26:11

https://img1.sycdn.imooc.com//climg/622f262709bbeb6d04770285.jpg

老师,又有不理解的了,为什么 scala 中函数可以用花括号来调用?

  • 这是scala的语法特性

    2022-03-14 19:28:31
  • 提问者 ischand #2

    如果调用方式是 sum(1) 的话,我能充分理解,但是 scala 允许 sum { 1 } ,这是什么意思呢,老师

    2022-03-14 19:28:36
  • scala中会有很多平时工作中没用过的语法特性

    2022-03-14 19:29:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师