我在spark df1和df2中有两个Dataframe,我基于一个公共列(即id)连接这两个Dataframe,然后添加一个额外的列结果并检查多个列,如果有任何列数据匹配,则需要在新列中插入匹配,如果没有匹配的条件,则需要在该列中传递为“不匹配”。我正在写下面的代码。
df1.join(df2,df1("id") === df2("id"))
.withColumn("Result",when(df1("adhar_no") === df2("adhar_no") ||
when(df1("pan_no") === df2("pan_no") ||
when(df1("Voter_id") === df2("Voter_id") ||
when(df1("DL_no") === df2("DL_no"),"Matched"))))
.otherwise("Not Matched"))
但下面是错误信息。
error: type mismatch;
found : Boolean
required: org.apache.spark.sql.Column
任何人都可以给我一个提示,我应该如何写我的查询生成所需的输出。
2条答案
按热度按时间zu0ti5jz1#
你应该把这些拿走
when
声明:lxkprmvk2#
试试下面的代码。