Spark 2.0 を使用して、ケース クラスのデータセット内のネストされたフィールドの名前を変更しようとしています。例は次のとおりです。「要素」の名前を「アドレス」に変更しようとしています(データ構造内でネストされている場所を維持します):
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")