如何使用多种类型的对象数组为spark模式构建正确的structtype?

6rqinv9w  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(410)

我拥有的结构:

{
 "person":"Jhon",
 [
    {"model":"golf","mark":"vw","fuel":"d","year":2000},
    {"model":"yamaha r1","year":1998,"abs":true}
 ]
}
//
StructType(
  StructField("person", StringPrimitive, false),
  ArrayType( /* ???? */ ) // Should be possible to define several structures
)

所以,这个想法很简单。有些人有自己的交通工具,这种交通工具可以是:汽车,摩托车,自行车,飞机等等。。。
第二种情况,当我只收到一个运输实体为每个人。像这样:

{"person":"Jhon",{"model":"yamaha r1","year":1998,"abs":true}}
//
StructType(
  StructField("person", StringPrimitive, false),
  StructField( /* ???? */ ) // Should be possible to define several structures
)

在这种情况下,传输可以是前面提到的类型之一。
构建structtype的正确方法是什么?
如何定义 ArrayType 多种类型或多种 StructType 类型?

deyfvvtc

deyfvvtc1#

如果您使用的是spark 1.x,您可以尝试使用udt获得相同的结果(如本主题中所述)。但是对于spark 2.x,这个功能已经被删除了。

相关问题