apache-spark - 在 Pyspark 的新列中添加与特定列值对应的多个列值
问题描述
我有一个 Pyspark 数据框,如下所示:
+---------+--------+-------+------+--------------+-------------+----------+
| NID | Time|N1 |Gender|P1 |M1 |Occupation| and so on...
+---------+--------+-------+------+--------------+-------------+----------+
| 1 | 10 AM | 10 | M| 100 | 50 | Teacher |
| 2 | 2 PM | 20 | M| 200 | 50 | Doctor |
+---------+--------+-------+------+--------------+-------------+----------+
假设如果 NID 为 2,那么如何从不同的列中添加相应的值,例如:
if NID ==2 then N1(20) + P1(200) + M1(50)
result = absolute value (270) =270
我们可以使它通用,以便它可以应用于 n 列。
提前致谢!
解决方案
Pyspark:使用 When ,否则此问题的条件。例子 :df.withColumn("result", when(col("NID") == 2 , col("N1") + col("P1") + col("M1"))).show().
推荐阅读
- c++ - 如何定义依赖于参数包转换的函数的返回类型?
- spring - @Autowired 在 springboot 应用程序中不起作用
- postgresql - 如何小写postgresql数组?
- c# - ASP .NET CORE 2.0 - 无法在 Debian 上启动服务
- android - 远程获取领域数据库 Android
- gcloud - 谷歌云ml语音-异步操作丢失id
- c# - 搜索和替换文本,如记事本
- python - 没有访问权限/尝试过“chmod u+x”/.command/ 文件有点打开,但没有集会/Hairline 将不胜感激
- python-3.x - LZ4使用python解压
- python - pygame - 重新进入游戏窗口时全屏游戏图形移动