java - 使用 Spark 执行“WHERE IN”子句,如何仅重新训练我的第一个数据集的列?
问题描述
我做事正确吗?
我只想保留mobilite
与 中提到的城市相关的数据communes
。
我用一个模拟WHERE ... IN ...
子句join
:这是最好的方法吗?
Dataset<Row> mobilite = this.mobiliteDomicileTravailDataset
.dsRowFluxDomicileTravailPlusDe15ansAvecEmploi(this.session, 2017);
Dataset<Row> communes = communes(2018);
mobilite = mobilite
.join(communes,
communes.col("codeCommune").equalTo(col("code_commune_origine")), "inner")
.selectExpr("mobilite.*");
操作mobilite
后获取的数据集内部包含列。这是正常的。但他们对我不感兴趣。但是,我写的内容不起作用并导致错误。join
communes
如何快速丢弃它们?
编写实现我想要的最快的代码是什么?
解决方案
使用leftsemi
加入:
mobilite = mobilite
.join(communes,
communes.col("codeCommune").equalTo(col("code_commune_origine")), "leftsemi")
.selectExpr("mobilite.*");
推荐阅读
- javascript - 如何使用 webdriverIO 在隐身模式下执行测试
- java - 如何在 Java 中的 SortedSet 中查找项目
- python - 如何在 Big Sur 上使用 pip 在 pypy 上安装 numpy?
- python - 将带有附加列表的字典列表写入 CSV - Python
- excel - 通过 PowerQuery 从 Excel 加载 SharePoint Online 列表(带有查找列)数据
- typescript - 用于角度的 lightGallery 图像库组件 - 将浏览器切换到移动屏幕后,关闭和下载按钮图标消失
- aws-sdk - 如何禁用 AWS 开发工具包日志记录
- next.js - 将导出脚本添加到现有的 next.config.js
- azure - Azure Sql DB 还原未显示在 Azure 门户中,但在 SSMS 中还原
- java - 运行着色 Jar 时未加载泽西岛验证