apache-spark - 如何在 selectExpr 中执行多个表达式
问题描述
可以在同一个 selectExpr 中应用许多表达式,例如如果我有这个 DF:
+---+
| i|
+---+
| 10|
| 15|
| 11|
| 56|
+---+
如何乘以 2 并将列重命名为:
df.selectExpr("i*2 as multiplication")
解决方案
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|
+--------+----------+
推荐阅读
- amazon-web-services - EFS 符号链接在部署时失败
- c++ - 如何编写一个以比较运算符为参数的函数模板?
- c# - 将 CollectionView 滚动到 ItemGroup
- python - 双重插入到列表框 SQLITE3 和 TKINTER
- haskell - How do I access the `Constraint` kind properly?
- android - 房间数据库多对多关系
- php - 在php中经过一段时间后我无法隐藏警报,然后我无法在php中添加onclick函数
- python - 使用 Python 将 YAML 文件转换为 XLSX
- java - 运行我的颤振项目时收到此错误消息
- python - 在 python 链表中实现 __next__()