我有一个案例类,我想在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中没有地图和选项
无法使用此案例类来创建DataFrame
架构.虽然Spark支持map via MapType
并Options
使用已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) ))