首页 > 解决方案 > 希望根据预定义的字符串数组过滤嵌套结构

问题描述

架构:

root
 |-- group: struct (nullable = true)
 |    |-- name: string (nullable = true)
 |    |-- tags: array (nullable = true)
 |    |    |-- element: string (containsNull = true)

tags看起来像这样:

1 ["Cat", "Dog", "Mouse"]
2 []
3 ["Cat"]
4 ["Zebra"]

如果出现其中之一,我想过滤我的整个数据框["Cat", "Dog"]。应用此规则后,将留下以下行:

1 ["Cat", "Dog", "Mouse"]
3 ["Cat"]

标签: scalaapache-spark

解决方案


df您的数据框在哪里

df.filter("arrays_overlap(tags,array('Cat','Dog'))")

您可以使用array_overlap过滤您的标签


推荐阅读