Я использую Spark 1.6.1. Допустим, мой кадр данных выглядит следующим образом:Динамически выбирайте содержимое столбца на основе другого столбца из той же строки
+------------+-----+----+
|categoryName|catA |catB|
+------------+-----+----+
| catA |0.25 |0.75|
| catB |0.5 |0.5 |
+------------+-----+----+
Где categoryName
имеет тип String, и cat*
двойные. Я хотел бы добавить столбец, который будет содержать значение из столбца, имя которого находится в categoryName
колонки:
+------------+-----+----+-------+
|categoryName|catA |catB| score |
+------------+-----+----+-------+
| catA |0.25 |0.75| 0.25 | ('score' has value from column name 'catA')
| catB |0.5 |0.7 | 0.7 | ('score' value from column name 'catB')
+------------+-----+----+-------+
мне нужна такая экстракцию некоторых дальнейших расчетов. Есть идеи?
Важно: я не знаю названия столбцов категории. Решение должно быть динамичным.
1.) Dataset API от Спарк 2.0.0, верно? Я использую 1.6.1 2.) Хм, может быть, я проверю это. 3.) Но я потеряю контекст имени столбца внутри udf, правильно? 4.) Не динамический –
Искра 1.6.1 имеет API-интерфейс набора данных в scala (он был изменен в версии 2.0). При переходе в UDF вы можете использовать имя столбца, установив порядок. –