首页 > 解决方案 > 如何在 selectExpr 中执行多个表达式

问题描述

可以在同一个 selectExpr 中应用许多表达式,例如如果我有这个 DF:

+---+
|  i|
+---+
| 10|
| 15|
| 11|
| 56|
+---+

如何乘以 2 并将列重命名为:

df.selectExpr("i*2 as multiplication")

标签: apache-sparkapache-spark-sql

解决方案


def selectExpr(exprs: String*): org.apache.spark.sql.DataFrame

如果您有许多表达式,则必须将它们传递给逗号分隔的字符串。请检查以下代码。

scala> val df = (1 to 10).toDF("id")
df: org.apache.spark.sql.DataFrame = [id: int]

scala> df.selectExpr("id*2 as twotimes", "id * 3 as threetimes").show
+--------+----------+
|twotimes|threetimes|
+--------+----------+
|       2|         3|
|       4|         6|
|       6|         9|
|       8|        12|
|      10|        15|
|      12|        18|
|      14|        21|
|      16|        24|
|      18|        27|
|      20|        30|
+--------+----------+


推荐阅读