我在Spark数据框中有一个列,其架构如下所示:
|-- seg: map (nullable = false)
| |-- key: string
| |-- value: array (valueContainsNull = false)
| | |-- element: struct (containsNull = false)
| | | |-- id: integer (nullable = false)
| | | |-- expiry: long (nullable = false)
列中的值如下所示:
Map(10000124 -> WrappedArray([20185255,1561507200], [20185256,1561507200]))]
我想要做的是从这个Map列创建一个列,它只包含一个[20185255,20185256]数组(数组的元素是WrappedArray中每个数组的第一个元素)。 我该怎么做?
我试图不使用"爆炸"。
**他们也可以使用UDF来接收Map并获取这些值吗?**