2017-08-03 47 views
0

我正在尝试使用两个操作数进行算术运算:constant literalColumn。除withColumn之外是否有其他方法?引发SQL执行简单的算术运算

+0

什么是与withColumn问题?你也可以在select语句中做到这一点 –

+0

如何用select语句做到这一点。 – sandeep

回答

1

df是一个数据帧:

+---+ 
| i| 
+---+ 
| 1| 
| 2| 
| 3| 
+---+ 

那么你可以使用选择添加的结果:

import org.apache spark.sql.functions.lit 

df 
.select($"i",($"i" + lit(1)).as("j")) 
.show 

+---+---+ 
| i| j| 
+---+---+ 
| 1| 2| 
| 2| 3| 
| 3| 4| 
+---+---+ 
+0

谢谢拉斐尔。作为一个后续问题,我能够做到这一点:'TABLE_2_0.select(($“exchr”/ 1).as(“j”))。show'。 但是当我做'TABLE_2_0.select((1/$“exchr”)。as(“j”))。show', 我得到:':51:错误:重载的方法值/ (X:双人间) (X:浮动)浮法 (X:龙)龙 (X:智力)诠释 (X:夏亚)诠释 (X:短)诠释 ( x:Byte)Int不能应用于(org.apache.spark.sql.ColumnName)' – sandeep

+1

@sandeep你需要做'TABLE_2_0.select((lit(1)/ $“exchr”)。as(“j “))'在这种情况下('org.apache.spark.sql.functions.lit') –

+0

哦!感谢您的快速帮助。 – sandeep