java - 如何向 Spark 数据集添加 Map 列?

标签 java scala apache-spark dictionary apache-spark-dataset

我有一个Java Map变量,例如 Map<String, String> singleColMap 。我想添加这个Map Spark 2.2 (Java 1.8) 中将变量作为新列值添加到数据集。

我尝试了以下代码,但它不起作用:

ds.withColumn("cMap", lit(singleColMap).cast(MapType(StringType, StringType)))

有人可以帮忙解决这个问题吗?

最佳答案

您可以使用typedLit这是在 Spark 2.2.0 中引入的,来自文档:

The difference between this function and lit is that this function can handle parameterized scala types e.g.: List, Seq and Map.

所以在这种情况下,以下内容就足够了

ds.withColumn("cMap", typedLit(singleColMap))

关于java - 如何向 Spark 数据集添加 Map 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52417532/

相关文章:

java - 使用 jquery 从表单中检索数据

scala - Spark Scala 中的模棱两可的模式

python - 比较两个数据帧 Pyspark

scala - Playframework 插件在 IntelliJ IDEA 12 中不起作用

java - 玩! 2.1 要我写scala代码

java - Spark重新分区和spark.sql.shuffle.partition的区别

apache-spark - Spark 结构化流中的实时指标

java - Hibernate NOWAIT 不适用于 SQL Server 2008

java - 使用文档监听器时如何将文本设置为标题?

java - Spring Boot 中的 @IntegrationTest 与 'normal' 单元测试结合运行时会使协和测试失败