在spark数据帧中除以2列的值

时间:2017-08-20 10:08:55

标签: java apache-spark

The table looks like this

我将Spark中的这个表存储为Dataframe。我想获得另一个包含比率的数据帧(url,url1,ratio),其中ratio = count1 / count。如何为它编写操作?

2 个答案:

答案 0 :(得分:5)

非常简单:

import spark.implicits._
val newDF = df.withColumn("ratio", $"count1" / $"count") 

这行代码会在您的ration中添加一个名为df的列,并将结果放在newDF

编辑1 :(按要求在Java中解决方案)

import org.apache.spark.sql.functions._
Dataset<Row> newDF = df.withColumn("ration", col("count1").divide(col("count"))

答案 1 :(得分:0)

import static org.apache.spark.sql.functions.*;
Dataset<Row> newDs = oldDs.withColumn("ratio",col("count1").divide(col("count")))

N.B。对于算术异常或NAN,则spark 2.0安全地使结果为null