Spark Scala 2.11.11本地数据集合并及Top100记录展示求助
解决方案
Spark DataFrame 没有 merge 方法(该方法属于 Pandas API),你需要使用 join 操作 来关联两个数据集。以下是具体实现:
核心实现代码
假设你已经完成两个文件的读取,得到 df1 和 df2,可以按以下步骤操作:
// 基于pId列进行内关联(仅保留两边都存在匹配pId的记录) val joinedResult = df1.join(df2, Seq("pId"), "inner") .select("pId", "firstName", "lastName") // 展示合并后的前100条记录 joinedResult.show(100)
可选扩展
- 若需要保留
df1中所有记录(即使df2无对应pId),改用左关联:
val leftJoinedResult = df1.join(df2, Seq("pId"), "left") .select("pId", "firstName", "lastName") leftJoinedResult.show(100)
- 若数据集存在重复pId,可先去重再关联:
// 对df1的pId去重 val df1UniquePid = df1.select("pId").distinct() // 关联后筛选目标列 val deduplicatedResult = df1UniquePid.join(df2, Seq("pId"), "inner") .select("pId", "firstName", "lastName") deduplicatedResult.show(100)
内容的提问来源于stack exchange,提问作者Kacie
相关产品推荐
相关产品推荐

