如何从maptype中提取键以在agg函数中使用它(火花数据帧)

时间:2019-04-25 17:53:08

标签: scala apache-spark dataframe

我正在使用scala和数据帧以火花的方式从parquet file中读取一些数据,并且试图从maptype键中提取数据并将其用于groupby函数中。

这里是一个例子:

    val sh = StructType(Array(
   StructField("sessionId", StringType, true),
 StructField("productTypes", MapType(StringType, IntegerType, true))) 

df.select(
col("productTypes"),
   col("sessionId")
)
    .withcolumn("output".select(explode(col("productTypes"))).select("key")

) 但这会引发异常

type mismatch;
[error]  found   : org.apache.spark.sql.DataFrame
[error]     (which expands to)  org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
[error]  required: org.apache.spark.sql.Column
[error] .withColumn("col4", df.select(explode((col("productTypes")))).select("key"))

0 个答案:

没有答案