基本上,我希望能够隐式推断Map[String, Any]
的结构和Any
的数据类型。如回答here一样,可以从现有Map创建数据框。问题在于它将模式设置为key, value
。我想这个想法类似于从JSON字符串及其数据类型推断模式。
让我们看一个例子。为了简化,让我们假设我想从Map[String, Int]
创建数据框(以避免使用Any
类型)。
spark
.createDataset(Seq(Map("foo" -> 0, "bar" -> 1)))(ExpressionEncoder(): Encoder[Map[String, Int]])
.printSchema
我得到以下模式:
root
|-- value: map (nullable = true)
| |-- key: string
| |-- value: integer (valueContainsNull = false)
但是,我想自动推断模式,就像Spark推断JSON字符串的模式一样:
root
|-- foo: integer (nullable = true)
|-- bar: integer (nullable = true)
有什么方法可以创建编码器或“ 推断器”来实现这一目标?
谢谢。