加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何将空地图类型列添加到DataFrame?

发布时间:2020-12-16 18:13:21 所属栏目:安全 来源:网络整理
导读:我想在数据框中添加一个新的地图类型列,如下所示: |-- cMap: map (nullable = true)| |-- key: string| |-- value: string (valueContainsNull = true) 我试过这段代码: df.withColumn("cMap",lit(null).cast(MapType)).printSchema 错误是: console:132:
我想在数据框中添加一个新的地图类型列,如下所示:

|-- cMap: map (nullable = true)
|    |-- key: string
|    |-- value: string (valueContainsNull = true)

我试过这段代码:

df.withColumn("cMap",lit(null).cast(MapType)).printSchema

错误是:

<console>:132: error: overloaded method value cast with alternatives:
(to: String)org.apache.spark.sql.Column <and>
(to: org.apache.spark.sql.types.DataType)org.apache.spark.sql.Column
cannot be applied to (org.apache.spark.sql.types.MapType.type)

是否有其他方法可以将新列强制转换为Map或MapType?谢谢

解决方法

与其他类型不同,MapType不是您可以按原样使用的对象(它不是扩展DataType的对象),您必须调用MapType.apply(…),它期望键和值类型作为参数(并返回MapType类的一个实例):

df.withColumn("cMap",lit(null).cast(MapType(StringType,StringType)))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读