我拥有的结构:
{
"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
类型?
1条答案
按热度按时间deyfvvtc1#
如果您使用的是spark 1.x,您可以尝试使用udt获得相同的结果(如本主题中所述)。但是对于spark 2.x,这个功能已经被删除了。