scala - 从其他列在 Apache Spark 中创建映射列

标签 scala apache-spark spark-dataframe

我搜索了很多,但找不到任何可以适应我的情况的东西。我有一个像这样的数据框:

+-----------------+---------------+
|             keys|         values|
+-----------------+---------------+
|[one, two, three]|[101, 202, 303]|
+-----------------+---------------+

键有一个字符串数组,值有一个整数数组。

我想创建一个包含键到值的映射的新列,如下所示:
+-----------------+---------------+---------------------------+
|             keys|         values|                        map|
+-----------------+---------------+---------------------------+
|[one, two, three]|[101, 202, 303]|Map(one->101, two->202, etc|
+-----------------+---------------+---------------------------+

我一直在看这个问题,但不确定它可以用作我的情况的起点:Spark DataFrame columns transform to Map type and List of Map Type

我需要在 Scala 中使用这个。

谢谢!

最佳答案

从 Spark 2.4 开始,有一个内置版本def map_from_arrays(keys: Column, values: Column): Columnorg.apache.spark.sql.functions

关于scala - 从其他列在 Apache Spark 中创建映射列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47373967/

相关文章:

scala - 检查 Scala 中两个 Spark DataFrame 的相等性

java - 如何强制 Scala 中指令的执行顺序

scala - 使用 scala 基于对 Spark DataFrame 中现有列的聚合添加新列

apache-spark - 使用 registerTempTable 找不到表或 View

hive - 为什么 Spark SQL 使用来自 Hive 的 hive-site.xml 会失败并显示 "NumberFormatException: For input string: "1s""?

apache-spark - Python Spark 连接两个数据帧并填充列

python - 从 pySpark 中的 UDF 动态推断返回对象的架构

html - 将 html/xml 代码与提升代码段分开的好方法是什么?

Scala将可变参数传递给另一个接受可变参数的函数

apache-spark - 如何将不同的聚合函数应用于同一列为什么要对 spark 数据帧进行分组?