从数据框列中选择值

时间:2015-09-28 16:11:17

标签: scala apache-spark apache-spark-sql apache-spark-1.4

我想计算同一列中两个值之间的差异。现在我只想要最后一个值和第一个值之间的差异,但是使用last(column)会返回一个null结果。有没有理由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个值。

0 个答案:

没有答案