我在Spark-shell中尝试了以下代码,它运行正常。
val df2 = df3.withColumn("Escore", when($"col2" === $"col3",10).otherwise(0))orderBy(asc("col2"),desc("Escore"),desc("col5"))
但是当我在IntelliT&Scala中使用SBT尝试相同的命令时,我面临以下错误。
Scala IDE中的:
val df2: DataFrame = df3.withColumn("Escore": String,when($"col2" === $"col3",10).otherwise(0))orderBy(asc("col2"),desc("Escore"),desc("col5"))
错误:无法解析符号" WHEN"
有没有人可以提供一个示例代码或语法,说明如何在IntelliJ Scala中编写withColumn数据帧。
我的SBT是:
name := "SparkSqlExample"
version := "1.0"
scalaVersion := "2.11.5"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.1"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.5.1"
答案 0 :(得分:4)
我也尝试过spark-shell这个工作正常,但即使在intelliJ
它工作正常。我想你忘了导入sql函数。
import org.apache.spark.sql.functions._
试试这个。如果不添加评论,这将解决问题 感谢