Я хотел бы рассчитать разницу между двумя значениями из одного столбца. Сейчас мне просто нужна разница между последним значением и первым значением, однако использование последнего (столбца) возвращает нулевой результат. Есть ли причина, по которой last() не возвращает значение? Есть ли способ передать положение значений, которые я хочу, как переменные; пример: 10-й и 1-й или 7-й и 6-й?
Current code
Использование Spark 1.4.0 и Scala 2.11.6
myDF =
некоторый фрейм данных с n строками по m столбцам
def difference(col: Column): Column = {
last(col)-first(col)
}
def diffCalcs(dataFrame: DataFrame): DataFrame = {
import hiveContext.implicits._
dataFrame.agg(
difference($"Column1"),
difference($"Column2"),
difference($"Column3"),
difference($"Column4")
)
}
Когда я запускаю diffCalcs(myDF)
, он возвращает результат null
. Если я изменю difference
, чтобы иметь только first(col)
, он вернет первое значение для четырех столбцов. Однако, если я изменю его на last(col)
, он вернет null
. Если я вызову myDF.show()
, я увижу, что все столбцы имеют значения Double
в каждой строке, ни в одном из столбцов нет значений null
.
last(col)-first(col)
, но возвращаетnull
.first(col)
возвращает соответствующее значение, аlast(col)
возвращаетnull
. - person the3rdNotch   schedule 28.09.2015null
, все они двойные. - person the3rdNotch   schedule 28.09.2015