java - 如何将 Map 列添加到 Spark 数据集?
问题描述
我有一个 JavaMap
变量,比如说Map<String, String> singleColMap
. 我想将此Map
变量作为 Spark 2.2 (Java 1.8) 中的新列值添加到数据集中。
我尝试了下面的代码,但它不工作:
ds.withColumn("cMap", lit(singleColMap).cast(MapType(StringType, StringType)))
有人可以帮忙吗?
解决方案
您可以使用文档中在Spark 2.2.0typedLit
中引入的内容:
此函数与 lit 的区别在于此函数可以处理参数化的 scala 类型,例如:List、Seq 和 Map。
所以在这种情况下,以下应该就足够了
ds.withColumn("cMap", typedLit(singleColMap))
推荐阅读
- azure-pipelines - 如何在管道中使用 VSTest 指定一组测试
- c# - Bullet-Hell Tool (Unity C#) - 将半圆的物体/射弹向着方向矢量 2 旋转
- go - 写入错误通道会停止执行
- css - 如何在不破坏容器边界半径的情况下创建与 Safari 兼容的过渡变换比例
- react-native - react-native-webview 控制 iframe 中的媒体播放
- elasticsearch - Kibana ES Fielddata 默认在文本字段上禁用
- sql-server - 转换数据类型
- vb.net - 将多行文本框的行添加到字符串/数组 VB.NET
- scala - 有人用过 Avast RabbitMQ 客户端吗?我收到此错误以解决依赖关系
- numpy - Numpy:向数组添加不同的元素