use*_*577 7 scala apache-spark
我有一个案例类,我想在Spark中转换为模式
case class test(request1:Map[String, Any],response1:Option[String] = None,)
Run Code Online (Sandbox Code Playgroud)
如何将此类转换为架构对象
val mySchema = StructType(
StructField("request1", Map[String, Any], false),StructField(" response1", Option[String],true))
Run Code Online (Sandbox Code Playgroud)
DataType中没有地图和选项
无法使用此案例类来创建DataFrame架构.虽然Spark支持map via MapType并Options使用已Nones转换为的包装类型进行处理NULLs,但Any不支持类型的schema .
假设您将Value类型更改为String:
case class Test(request1: Map[String, String], response1: Option[String] = None)
Run Code Online (Sandbox Code Playgroud)
相应的模式应如下所示:
StructType(Seq(
StructField("request1", MapType(StringType, StringType, true), true),
StructField("response1", StringType, true)
))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5260 次 |
| 最近记录: |