微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark 3.1 - 使用 FilterFunction<Row> 的 java 数据集过滤器

如何解决Spark 3.1 - 使用 FilterFunction<Row> 的 java 数据集过滤器

我想用java根据spark 3.1中的某些条件过滤数据集。 这是我的输入数据集

+------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|id    |zip   |fulldetails                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
+------+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|123541|123541|{"id":"123","name":"aaaa","nBr":1,"type":{"id":5},"status":{"desc":"NONE"},"mainData":{"proceed":"N","savings":{"processed":{"amount":111}}},"findings":[{"newData":[{"place":{"no":1,"doorNo":2}}]}]}  |         
+------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


下面是第 3 列的值,它是在 Json fromat 中

{
    "id":"123","type":{
        "id":5
    },"status":{
        "desc":"NONE"
    },"mainData":{
        "proceed":"N","savings":{
            "processed":{
                "amount":111.0
            }
        }
    },"findings":[
        {
            "newData":[
                {
                    "place":{
                        "no":1,"doorNo":2
                    }
                }
            ]
        }
    ]
    
}

我想根据第 3 列的值过滤此数据集。 即)mainData.savings.processed.amount < 100.0 name != aaaa

如果我们将此 Json 数据更改为 Struct,我们可以使用普通 spark dataset.filter(col('col_name').geq(lit(0))) 但我正在寻找 spark3.1-java 中的普通过滤器方法。 我看到我们可以使用 FilterFunction 来做到这一点。如果我像下面这样使用它,我如何从这个 Json 中获取每个数据。

dataset.filter((FilterFunction<Row>) row->{
            
        });

谁能帮我解决这个问题。提前致谢:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。