Função Apache Spark Window com coluna aninhada

Não tenho certeza se isso é um bug (ou apenas sintaxe incorreta). Eu procurei e não vi isso mencionado em outro lugar, então estou perguntando aqui antes de registrar um relatório de bug.

Estou tentando usar uma função de janela particionada em uma coluna aninhada. Eu criei um pequeno exemplo abaixo demonstrando o problema.

import sqlContext.implicits._
import org.apache.spark.sql.functions._
import org.apache.spark.sql.expressions.Window

val data = Seq(("a", "b", "c", 3), ("c", "b", "a", 3)).toDF("A", "B", "C", "num")
  .withColumn("Data", struct("A", "B", "C")).drop("A").drop("B").drop("C")
val winSpec = Window.partitionBy("Data.A", "Data.B").orderBy($"num".desc)
data.select($"*", max("num").over(winSpec) as "max").where("num = max").drop("max").show

O resultado acima resulta em um erroorg.apache.spark.sql.AnalysisException: resolved attribute(s) A#39,B#40 missing from num#33,Data#37 in operator !Project [num#33,Data#37,A#39,B#40]; at org.apache.spark.sql.catalyst.analysis.CheckAnalysis$class.failAnalysis(CheckAnalysis.scala:38) at org.apache.spark.sql.catalyst.analysis.Analyzer.failAnalysis(Analyzer.scala:44) ...

Se essas colunas não estiverem aninhadas, funcionará bem. Estou faltando algo com a sintaxe ou isso é um bug?

questionAnswers(1)

yourAnswerToTheQuestion