我的Dataframe格式如下-
|-- id: string (nullable = true)
|-- epoch: string (nullable = true)
|-- data: map (nullable = true)
| |-- key: string
| |-- value: string (valueContainsNull = true)
并转换为具有多个值-
|-- id: string (nullable = true)
|-- epoch: string (nullable = true)
|-- key: string (nullable = true)
|-- value: string (nullable = true)
例子:
发件人:
1,12345, [pq -> r, ab -> c]
收件人:
1,12345, pq ,r
1,12345, ab ,c
我正在尝试此代码,但不起作用-
val array2Df = array1Df.flatMap(line =>
line.getMap[String, String](2).map(
(line.getString(0),line.getString(1),_)
))
1条答案
按热度按时间kr98yfug1#
尝试跟踪
之后,需要根据数据列进行分解。别忘了
导入org.apache.spark.sql.functions.explode