【发布时间】:2021-12-03 22:33:32
【问题描述】:
我有一个具有以下架构的数据框:
root
|-- id: long (nullable = true)
|-- type: string (nullable = true)
|-- tags: map (nullable = true)
| |-- key: string
| |-- value: string (valueContainsNull = true)
|-- lat: Long (nullable = true)
|-- lon: Long (nullable = true)
|-- nds: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- ref: long (nullable = true)
|-- members: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- type: string (nullable = true)
| | |-- ref: long (nullable = true)
| | |-- role: string (nullable = true)
我想创建一个新的数据框res,在其中从tags 列中选择特定数据。我需要来自key=place 和key=population 的values。新数据框应具有以下架构:
val schema = StructType(
Array(
StructField("place", StringType),
StructField("population", LongType)
)
)
我完全不知道该怎么做。我尝试复制第一个数据框,然后选择列,但这没有用。
谁有解决办法?
【问题讨论】:
标签: java scala dataframe apache-spark apache-spark-sql