UDF采用两个参数的火花数据帧

时间:2018-10-19 07:21:31

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

原始数据框

+------+--------+
|  name| country|
+------+--------+
|Raju  |UAS     |
|Ram   |Pak     |
|null  |China   |
|null  |null    |
+------+--------+

  I Need  this 
+------+--------+
|Namwet|wet Con |
+------+--------+
|0.2   | 0.3    |
|0.2   | 0.3    |
|0.0   | 0.3    |
|0.0   | 0.0    |
+------+--------+

我想为两列创建一个Udf 这将应用于“名称列”,它会检查它们,如果不为null,则返回应为0.2,否则应返回0.0。 和相同的Udf应用于country列,如果它为null,则返回0.0不为null则返回0.3

1 个答案:

答案 0 :(得分:1)

您不需要udf。

您可以这样做

df
  .select(
    when($"name".isNotNull, 0.2).otherwise(0.0).as("Namewet"),
    when($"country".isNotNull, 0.3).otherwise(0.0).as("wet Con"),
    // Select more columns as required)