首页 > 解决方案 > 在包含 Scala Spark 数据帧中的数组的列中过滤数组的长度

问题描述

我有一个名为“mydf”的 DataFrame 架构,如下所示:

root
|--properties
|  |-- arrayCol: array (nullable = true)
|  |  |-- element: struct (containsNull = true)
|  |  |  |-- unimportantElem1: string (nullable = true)
|  |  |  |-- unimportantElem2: integer (nullable = true)

我想根据具有大小(数组长度)等于“s”的数组的“arrayCol”列过滤行,并计算这些行的数量。

标签: scalaapache-spark

解决方案


mydf filter(size($"properties.arrayCol") === 4) count

在这里,我正在过滤行以查找列 arrayCol 中具有大小为 4 的数组的所有行。

请注意,arrayCol 是嵌套的 (properties.arrayCol),因此它可能有助于使用嵌套列进行过滤的人。我在发布问题时得到了答案。


推荐阅读