apache-spark - 错误:类型不匹配::found :Boolean:: required: org.apache.spark.sql.Column issue::Spark/Scala
问题描述
我在 spark Df1 和 Df2 中有 2 个 Dataframes 我基于一个公共列(即 Id)加入这 2 个 Dataframes,然后添加一个额外的列结果并检查多个列,如果任何列数据匹配,则我需要插入新的列匹配,如果没有条件匹配,则需要在该列中作为“不匹配”传递。我正在写下面的代码。
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
任何人都可以请给我一个提示,我应该如何编写查询以生成所需的输出。
解决方案
试试下面的代码。
df1.join(df2,df1("id") === df2("id"))
.withColumn("Result",
when((
df1("adhar_no") === df2("adhar_no") ||
df1("pan_no") === df2("pan_no") ||
df1("Voter_id") === df2("Voter_id") ||
df1("DL_no") === df2("DL_no")
),"Matched"
).otherwise("Not Matched")
)
推荐阅读
- c#-4.0 - 我有 5 个表格,我想知道如何在关闭第 5 个表格后返回主表格
- swift - 在 Cocoa macos 应用程序中捕获 SIGINT
- python - 元组和占位符与 python print() 的交互?
- spring - 看不到从 Angular 到 Spring Boot 服务器参数的发布请求
- javascript - 如何阻止下一个按钮显示第一个 div?
- angular - 从路由中角度 4 的查询参数中获取数据
- javascript - 如何在 InAppBrowser 中检查 navigator.onLine 以获取 cordova/phonegap
- scala - Activeslick 中的关联
- export-to-csv - 如何在 ODI 12c 中将数据导出到 CSV 文件
- google-sheets-api - 如何通过 Google Sheets API 对行进行分组?