Scala 2.11 здесь.У меня есть следующая таблица input
DB:
[input]
===
id BIGINT UNSIGNED NOT NULL,
name VARCHAR(50) NOT NULL,
rank INT NOT NULL
Я читаю некоторые input
записи в Spark DataFrame
примерно так:
val inputDf = sqlContext().read
.format("blah whatever")
.option("url", "jdbc://blah://whatever")
.option("query", "SELECT * FROM input WHERE id < 500")
.load()
Пока все хорошо.Теперь я хочу просмотреть каждую строку в inputDf
и применить преобразование к полю rank
:
rank = rank * 50
Следовательно, если из БД будут считаны следующие 3 input
записи:
id | name | rank
================
1 | Fizz | 3
2 | Buzz | 14
3 | Foo | 294
Тогда результирующий DataFrame
должен выглядеть следующим образом:
id | name | rank
================
1 | Fizz | 150
2 | Buzz | 700
3 | Foo | 14700
Я считаю Я могу использовать функцию map
что-то вроде:
inputDf.map(input =>
// I believe this gets me the value of the 3rd column (rank):
input.getInt(3).intValue()
// Now how to update/set rank as 'rank *= 50' ?
???
).collect()
Но мне трудно видеть "лес сквозь деревья". Есть идеи? Результатом должен быть inputDf
, столбец / поле которого rank
был обновлен / преобразован правильно.