如何根据其他列在火花中添加地图列?

Posted

技术标签:

【中文标题】如何根据其他列在火花中添加地图列?【英文标题】:How to add map column in spark based on other column? 【发布时间】:2017-02-26 09:16:08 【问题描述】:

我有这张桌子:

|Name|Val|
|----|---|
|Bob |1  |
|Marl|3  |

我想把它转换成一个像这样的单一元素的地图:

|Name|Val|MapVal|
|----|---|------|
|Bob |1  |(0->1)|
|Marl|3  |(0->3)|

知道如何在 scala 中执行此操作吗? 我在withColumn 语句中找不到任何构建地图的方法...

【问题讨论】:

【参考方案1】:

找到了 - 只需要包含隐式 sql:

import org.apache.spark.sql.functions._

然后使用map函数: df.withColumn("MapVal", map(lit(0), col("Val")))

【讨论】:

以上是关于如何根据其他列在火花中添加地图列?的主要内容,如果未能解决你的问题,请参考以下文章

根据其他列在 HSQLDB 中添加日期间隔

如何根据 Python Pandas 中的其他列在 DataFrame 中创建新列? [复制]

根据其他列在列中插入实数 OLD INSERTs

Pyspark根据其他列值添加新列

如何避免列在jquery数据表中排序

在火花数据框中的每一行的地图类型列中按键排序