Вы можете использовать map
встроенную функцию как
import org.apache.spark.sql.*;
xmlDF.select(functions.map(functions.col("cell").getItem(0), functions.col("cell").getItem(1)).as("cell")).show(false);
, которая должна дать вам
+-----------------------------+
|cell |
+-----------------------------+
|[ute.recordClass -> sku_type]|
|[ute.name.en -> name_en] |
+-----------------------------+
root
|-- cell: map (nullable = false)
| |-- key: string
| |-- value: string (valueContainsNull = true)
Обновление
Вы прокомментировали какВы хотите всего лишь карту Java .Для этого вы можете использовать следующий метод
List<Row> rows = xmlDF.select(functions.col("cell").getItem(0).as("key"), functions.col("cell").getItem(1).as("value")).collectAsList();
Map<String, String> hashMap = new HashMap<String, String>();
for(Row row : rows){
hashMap.put(row.getString(0), row.getString(1));
}
hashMap
- это карта Java.
Надеюсь, что ответ полезен