繁体   English   中英

dataframe 上的火花过滤器,阵列包含 map

[英]Spark filter on dataframe with array containing a map

我有一个 dataframe 的架构,它有一个嵌套的 map 值数组:

root
 |-- array_of_properties: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- name: string (nullable = true)
 |    |    |-- props: map (nullable = true)
 |    |    |    |-- key: string
 |    |    |    |-- value: string (valueContainsNull = true)

我需要过滤数组内 map 中的结构名称和一些特定键的值。 我可以过滤名称:

dataframe.filter(array_contains(col("array_of_properties.name"), "somename"))

如何在嵌套props map 中的两个键的值上添加 AND 过滤器(例如,键名is_enabled的 boolean 值为 true 或 false,键名source的字符串值为test )?

使用exists function:

dataframe.filter("exists(array_of_properties, x -> x.name = 'somename' and x.props['is_enabled'] is true)")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM