我有一个带有struct数组的dataframe,所以我只想过滤列,或者我们可以说从struct数组中选择array of struct中的column,但这是可能的,因为我正在遍历行。架构
root
|-- day: long (nullable = true)
|-- table_row: array (nullable = true)
| |-- element: struct (containsNull = true)
| |-- DATE: string (nullable = true)
| |-- ADMISSION_NUM: string (nullable = true)
| |-- SOURCE_CODE: string (nullable = true)
我所做的是遍历行,我们可以按行选择数组列。我只想知道这怎么可能
def keepColumnInarray(columns: Set[String], row: Row): Row = {
//Some
}
例如,如果我想保留列“data”,那么keepcolumninarray将只选择此列
输出架构
root
|-- day: long (nullable = true)
|-- table_row: array (nullable = true)
| |-- element: struct (containsNull = true)
| |-- DATE: string (nullable = true)
1条答案
按热度按时间vulvrdjw1#
Spark>=2.4
这将转换
到
更新-1(基于评论)
Spark<2.4
使用下面的自定义项选择列-