当前位置:  开发笔记 > 编程语言 > 正文

将Case类中的Map类型转换为StructField类型

如何解决《将Case类中的Map类型转换为StructField类型》经验,为你挑选了1个好方法。

我有一个案例类,我想在Spark中转换为模式

case class test(request1:Map[String, Any],response1:Option[String] = None,)

如何将此类转换为架构对象

val mySchema = StructType(
StructField("request1", Map[String, Any], false),StructField(" response1", Option[String],true))

DataType中没有地图和选项



1> zero323..:

无法使用此案例类来创建DataFrame架构.虽然Spark支持map via MapTypeOptions使用已Nones转换为的包装类型进行处理NULLs,但Any不支持类型的schema .

假设您将Value类型更改为String:

case class Test(request1: Map[String, String], response1: Option[String] = None)

相应的模式应如下所示:

StructType(Seq(
   StructField("request1", MapType(StringType, StringType, true), true),
   StructField("response1", StringType, true)
))

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有