首页 > 解决方案 > 如何使用过滤器通过 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 但名称为空的记录。

标签: apache-sparkapache-spark-sqlpyspark-dataframesgreenplum

解决方案


推荐阅读