Я пытаюсь переименовать вложенное поле в наборе классов данных с использованием Spark 2.0. Пример следующим образом, где я пытаюсь переименовать «элемент» в «адрес» (сохранение, где он вложен в структуре данных):Переименовать вложенное поле в Scala Spark 2.0 Dataset
df.printSchema
//Current Output:
root
|-- companyAddresses: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- addressLine: string (nullable = true)
| | |-- addressCity: string (nullable = true)
| | |-- addressCountry: string (nullable = true)
| | |-- url: string (nullable = true)
//Desired Output:
root
|-- companyAddresses: array (nullable = true)
| |-- address: struct (containsNull = true)
| | |-- addressLine: string (nullable = true)
| | |-- addressCity: string (nullable = true)
| | |-- addressCountry: string (nullable = true)
| | |-- url: string (nullable = true)
Для справки, следующий не работает:
df.withColumnRenamed("companyAddresses.element","companyAddresses.address")
df.withColumnRenamed("companyAddresses.element","address")
http://stackoverflow.com/questions/35592917/renaming-column-names-of-a-data-frame-in-spark-scala – banjara
@shekhar Эта ссылка содержит только решения для плоских наборов данных, проблема, с которой я сталкиваюсь, - это место, в котором оно расположено. – Nick