Можно использовать функцию "struct":
val originalDF = List((1, "any", 10)).toDF("id", "name", "score")
val transformed = originalDF.select($"id", struct($"name", $"score").alias("attribute"))
transformed.printSchema()
Выход:
root
|-- id: integer (nullable = false)
|-- attribute: struct (nullable = false)
| |-- name: string (nullable = true)
| |-- score: integer (nullable = false)