Я использую Spark в Scala, и мои агрегированные столбцы анонимны. Есть ли удобный способ переименовать несколько столбцов из набора данных? Я думал о наложении схемы с as
, но ключевой столбец представляет собой структуру (из-за операции groupBy
), и я не могу понять, как определить case class
с StructType
в нем.
Я попытался определить схему следующим образом:
val returnSchema = StructType(StructField("edge", StructType(StructField("src", IntegerType, true),
StructField("dst", IntegerType), true)),
StructField("count", LongType, true))
edge_count.as[returnSchema]
но я получил ошибку компиляции:
Message: <console>:74: error: overloaded method value apply with alternatives:
(fields: Array[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType <and>
(fields: java.util.List[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType <and>
(fields: Seq[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType
cannot be applied to (org.apache.spark.sql.types.StructField, org.apache.spark.sql.types.StructField, Boolean)
val returnSchema = StructType(StructField("edge", StructType(StructField("src", IntegerType, true),