scala - 如何在scala中使用spark数据框找到对称的重复列(2列)?
问题描述
我有下面的数据框,它有两列。
输入数据框:
col1,col2
1,2
2,3
7,0
2,1
在上面的数据框中,第一行和第四行是对称的,应该只考虑一次。我们可以在输出中使用第一行或第四行。
可能的输出数据帧。
可能性1:
col1,col2
2,3
7,0
2,1
可能性2:
col1,col2
1,2
2,3
7,0
解决方案
您可以调用dropDuplicates
已排序的数组列:
val df2 = df.withColumn(
"arr",
sort_array(array(col("col1"), col("col2")))
).dropDuplicates("arr").drop("arr")
df2.show
+----+----+
|col1|col2|
+----+----+
| 2| 3|
| 1| 2|
| 7| 0|
+----+----+
推荐阅读
- javascript - 使用 Proj4js 将坐标从 EPSG:3857 转换为 EPSG:32633
- android - 显示 window.prompt 时没有匹配的视图
- c++ - 确定变量的类型
- numpy - 序列上泊松噪声实现的再现性
- powershell - 无法使用 powershell 设置 O365 许可证
- gatling - Gatling - 大型请求体并使用不同的 .json 文件作为每个会话的输入
- python - 无法使用 PyTorch 重现结果
- android - Admob :广告投放受限 - 您可以展示的广告数量受到限制。有关详细信息,请访问政策中心
- sql - (TABLOCKX) 和 (TABLOCKX, HOLDLOCK) 的区别
- spring-boot - 无法从 docker 容器内的 Spring Boot 连接到 Redis