Я хотел бы рассчитать разницу между двумя значениями из одного столбца. Прямо сейчас я просто хочу разницу между последним значением и первым значением, однако использование последнего (столбца) возвращает нулевой результат. Есть ли причина, по которой last() не возвращает значение? Есть ли способ передать позицию значений, которые я хочу в качестве переменных; например: 10-й и 1-й, или 7-й и 6-й?Выберите значения из столбца dataframe
Current code
Использование Спарк 1.4.0 и 2.11.6 Scala
myDF =
некоторые dataframe с п строками т столбцами
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'. – the3rdNotch
Я думаю, я также хочу пояснить, что ни одно из значений в столбце не является «null», они все являются двойными. – the3rdNotch
Пожалуйста, напишите [минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve). – zero323