如何解决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 举报,一经查实,本站将立刻删除。