Я должен определить схему из значений (не ключей) Map[String, Object]
.
Пример карты:
val myMap = Map("k1" -> 1, "k2" -> "", "k3"-> new Timestamp(new Date().getTime), "k4" -> 2.0 )
В настоящее время я создал схему из ключей, как показано ниже:
// I have created a schema using keys
val schema = StructType(myMap.keys.toSeq.map {
StructField(_, StringType) // StringType is wrong since Object in the Map can be of any datatype
}
// I have created a RDD like below
val rdd = sc.parallelize(Seq(Row.fromSeq(myMap.values.toSeq)))
val df = sc.createDataFrame(rdd,schema)
Но теперь моя проблема в том, что объект может быть двойным, или датой, или отметкой времени, или чем-то еще. Но я создал схему, используя StringType
, как описано выше, что неправильно.
Есть ли идеи создания схемы из значений Map, которые являются объектами?