如何实施"否则如果"在没有UDF的火花数据框架上?

时间:2018-01-22 09:09:05

标签: apache-spark pyspark apache-spark-sql spark-dataframe apache-spark-mllib

以下链接说明了如何在Spark中实现IF ELSE。

How do I use multiple conditions with pyspark.sql.funtions.when()?

如果我的火花数据框看起来像这样

A  B  C
10 2 300
20 3 200
30 7 500
20 1 700

但是如何在spark中实现包含ELSE IF的以下逻辑。

If A>=20:
    flag = 1
elif B> 4
    flag = 2
elif C>500
    flag = 3
elif (1<A<20 & B<2)
    flag = 4
elif (1<A<20 & C<300)
    flag = 5
elif (100<C<400 & B>6)
    flag = 6
else flag = 0

注意:

  • 我想直接在Spark数据帧上使用解决方案而无需对RDD或UDF进行操作。
  • 我使用链接时,否则为正常的IF其他条件,但是当条件很多时很难在所有条件下实现ElSE IF。

0 个答案:

没有答案