我正在尝试获取我的输入数据:
A B C
--------------
4 blah 2
2 3
56 foo 3
并根据B是否为空在末尾添加一列:
A B C D
--------------------
4 blah 2 1
2 3 0
56 foo 3 1
通过将输入 Dataframe 注册为临时表,然后输入一个SQL查询,我可以很容易地做到这一点。
但我真的很想知道如何仅使用Scala方法来实现这一点,而不必在Scala中键入SQL查询。
我试过.withColumn
,但我不能让它做我想做的事情。
3条答案
按热度按时间jm81lzqq1#
尝试使用
when
函数withColumn
,如下所示:newDf.show()
显示我添加了用于测试
isNull
案例的(100, null, 5)
行。我在
Spark 1.6.0
上尝试了此代码,但正如when
代码中所注解的那样,它可以在1.4.0
之后的版本上运行。sczxawaw2#
我的错,我漏掉了问题的一部分。
最好、最干净的方法是使用
UDF
。代码中的解释。j8ag8udp3#
像这样的怎么样?
使用
take(1)
应该具有最小的命中率