【发布时间】:2018-12-08 21:50:54
【问题描述】:
我们有一个DataFrame,看起来像这样:
DataFrame[event: string, properties: map<string,string>]
请注意,有两列:event 和 properties。我们如何根据map 中的键值将properties 列拆分或展平为多个列?
我注意到我可以这样做:
newDf = df.withColumn("foo", col("properties")["foo"])
产生一个Dataframe的
DataFrame[event: string, properties: map<string,string>, foo: String]
但是我必须为所有的键一个一个地做这些。有没有办法自动完成所有这些?例如,如果properties中有foo、bar、baz作为键,我们可以将map展平吗:
DataFrame[event: string, foo: String, bar: String, baz: String]
【问题讨论】: