apache-spark - 如何使用过滤器通过 spark 从 Greenplum 读取数据
问题描述
我正在尝试使用具有来自 Greenplum 的 OR 条件的 where 子句过滤数据。我在 spark 中使用“Greenplum”连接器。
片段 -
Df1 = Df.filter(col(‘id’)==‘1’ & (col(‘Name’)==‘abc’ | col(‘Name’).isNull()))
连接器在内部将其转换为 sql 查询,它看起来像这样 -
Select * from df where
id=‘1’ and Name=‘abc’ or Name is null;
这是一个不正确的查询,因为我想获取 id 为 1 且名称为 abc 或 null 的所有记录。使用此查询,获取的数据具有 id 不等于 1 但名称为空的记录。
解决方案
推荐阅读
- ios - 使用 Swift 在代码中创建的中心 UILabel
- java - 关闭 JGraphX 生成的图形后如何防止 JavaFX GUI 自动关闭?
- c# - 从视频游戏截图中提取信息
- .net - 确定给定 lat、long、date 的历史 UTC 偏移量
- php - 在 MongoDB 中存储大于 16 MB 的字符串(MongoDB 文档大小限制为 16 MB)
- regex - Bash:在每行之后插入一行
- macos - 如何在终端中为 FFMPEG 元数据格式化空格
- laravel - 如何使用 vue js 和 laravel 修复 405(不允许的方法)
- sql - Increment value of a column field whenever SELECT row
- unit-testing - 在 Raku 中进行单元测试时如何模拟类方法