scala – 为什么show show之后无法加入?
发布时间:2020-12-16 09:26:37 所属栏目:安全 来源:网络整理
导读:以下代码正常工作,直到我在agg之后添加show.为什么节目不可能? val tempTableB = tableB.groupBy("idB") .agg(first("numB").as("numB")) //when I add a .show here,it doesn't work tableA.join(tempTableB,$"idA" === $"idB","inner") .drop("idA","numA
以下代码正常工作,直到我在agg之后添加show.为什么节目不可能?
val tempTableB = tableB.groupBy("idB") .agg(first("numB").as("numB")) //when I add a .show here,it doesn't work tableA.join(tempTableB,$"idA" === $"idB","inner") .drop("idA","numA").show 错误说: error: overloaded method value join with alternatives: (right: org.apache.spark.sql.Dataset[_],joinExprs: org.apache.spark.sql.Column,joinType: String)org.apache.spark.sql.DataFrame <and> (right: org.apache.spark.sql.Dataset[_],usingColumns: Seq[String],joinType: String)org.apache.spark.sql.DataFrame cannot be applied to (Unit,org.apache.spark.sql.Column,String) tableA.join(tempTableB,"inner") ^ 为什么这样做? 解决方法
.show()是一个函数,我们在Scala中称之为副作用.它打印到stdout并返回Unit(),就像println一样
例: val a = Array(1,2,3).foreach(println) a: Unit = () 在scala中,你可以假设一切都是函数并且会返回一些东西.在您的情况下,正在返回Unit(),这就是存储在tempTableB中的内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容