python - PySpark:一起评估特定列
问题描述
我有一个 Spark 数据框,如下所示:
+---+----+---+---+
| a | b | c | d |
+---+----+-------+
|13 | 43 | 67| 3 |
+---+----+---+---+
是否可以选择特定的列一起评估以产生以下结果?
+----+----+---+---+-----+-----+-----------+
| a | b | c | d | a+b | c-b | a+b / c-b |
+----+----+-------+-----+-----+-----------+
| 13 | 43 | 67| 3 | 56 | 24 | 2.33 |
+----+----+---+---+-----+-----+-----------+
解决方案
是的,这是可能的。您可以使用selectExpr
或withColumn
添加额外的列:
from pyspark.sql.functions import expr
(
df.withColumn("a+b", expr("a + b"))
.withColumn("c-b", expr("c - b"))
.withColumn("a+b / c-b", expr("(a + b) / (c - b)"))
.show()
)
推荐阅读
- operating-system - 为什么此代码中没有加载 gdt?
- javascript - 如何从函数返回之前定义的 useRef 变量?
- swift - UISlider 的自定义形状并在 Swift 5 中更新进度
- php - PHP7 const 在条件(如果)内的要求(外部文件)中定义正在工作 - 为什么?
- ruby - 如何在 ruby 的方法中返回 true 或 false?
- ffmpeg - ffmpeg 将多个 mp3 文件添加到特定位置的 mp4 视频
- c++ - std::vector::reserve 实际上是如何工作的?
- android - 如何使用 href 将 url 传递给 android 应用程序?
- c++ - 我不明白为什么我的 .find 功能不起作用
- php - WooCommerce单品页面如何获取产品属性链接