spark 可以使用withColumn 结合 when 很方便的 根据原有列,来计算出新列,当然较复杂的计算还是要使用udf。
//when 所在包
scala> import org.apache.spark.sql.functions._
//创建加新的dataset
scala> spark.sql("create table itxw(id int)")
scala> spark.sql("insert into itxw values(1),(0)")
scala> spark.sql("select * from itxw").show
scala> var ds=spark.table("itxw")
+---+ | id| +---+ | 1| | 0| +---+
//$美元符号需要使用
scala> import spark.sqlContext.implicits._
//计算出新列
scala> ds=ds.withColumn("newColumn",when($"id" === 1,"true").otherwise("false"))
scala> ds.show
+---+---------+ | id|newColumn| +---+---------+ | 1| true| | 0| false| +---+---------+