Apache spark spark SQL使用常量执行简单算法

Apache spark spark SQL使用常量执行简单算法,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我正在尝试使用两个操作数进行算术运算:常量文本和列。除了使用列之外,还有其他方法吗?让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|

我正在尝试使用两个操作数进行算术运算:
常量文本
。除了使用列
之外,还有其他方法吗?

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|
+---+---+

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|
+---+---+

专栏有什么问题?您也可以在select语句中执行。如何使用select语句执行。withColumn有什么问题?您也可以在select语句中执行。如何使用select语句执行。谢谢Raphael。作为后续问题,我可以这样做:
TABLE_2\u 0.select(($“exchr”/1.As(“j”).show
。但是当我做
TABLE_2_0.select((1/$“exchr”).as(“j”).show
,我得到:
:51:error:重载方法值/带有可选项:(x:Double)Double(x:Float)Float(x:Long)Long(x:Int)Int(x:Char)Int(x:Short)Int(x:Byte)Int不能应用于(org.apache.spark.sql.ColumnName)
@sandeep您需要执行
表2\u 0。选择((lit(1)/$“exchr”).as(“j”)
在本例中(
org.apache.spark.sql.functions.lit
)谢谢Raphael。作为后续问题,我可以这样做:
TABLE_2\u 0.select(($“exchr”/1.As(“j”).show
。但是当我做
TABLE_2_0.select((1/$“exchr”).as(“j”).show
,我得到:
:51:error:重载方法值/带有可选项:(x:Double)Double(x:Float)Float(x:Long)Long(x:Int)Int(x:Char)Int(x:Short)Int(x:Byte)Int不能应用于(org.apache.spark.sql.ColumnName)
@sandeep您需要执行
表2\u 0。在本例中选择((lit(1)/$“exchr”).as(“j”)
org.apache.spark.sql.functions.lit