python - 如何在 pyspark 中使用“不存在”的 SQL 条件?
问题描述
我在 Hive 上有一个表,我正在尝试在该表中插入数据。
我正在从 SQL 中获取数据,但我不想插入 Hive 表中已经存在的 id。我正在尝试使用与不存在相同的条件。我在 Airflow 上使用PySpark。
解决方案
exists
Spark 中不存在该运算符,但有 2 个连接运算符可以替换它:left_anti
和left_semi
.
例如,如果您想df
在配置单元表中插入数据框target
,您可以执行以下操作:
new_df = df.join(
spark.table("target"),
how='left_anti',
on='id'
)
然后你写new_df
在你的桌子上。
left_anti
允许您仅保留不满足连接条件的行(相当于not exists
)。的等价物exists
是left_semi
。
推荐阅读
- python-3.x - 以百分比分布转换熊猫列的函数
- ios - 如何在显示前一个 tableview 信息的 tableviews 之间移动
- javascript - ReactJS,渲染后重定向
- java - 如何将具有不同返回类型但具有相同主体的两种方法与 throw 语句结合起来?
- android - 在 Android 应用程序中使用 Qt 代码
- java - Spring Datasource.Username 缓存在 AWS EC2 上,而不是本地?
- javascript - Angular - @Input 总是选择 undefined
- json - Nominatim API (OSM) 管理信息
- sql - 如何在sql server中使用现有数据声明表变量
- amazon-web-services - 更改读者的 RDS 可用区