我在Spark-Shell中尝试了以下代码,并且效果很好。
val df2 = df3.withColumn("Escore", when($"col2" === $"col3",10).otherwise(0))orderBy(asc("col2"),desc("Escore"),desc("col5"))
但是,当我在Intellij的Scala中使用SBT尝试相同的命令时,我将面临以下错误。
在Scala IDE中:
val df2: DataFrame = df3.withColumn("Escore": String,when($"col2" === $"col3",10).otherwise(0))orderBy(asc("col2"),desc("Escore"),desc("col5"))
错误:无法解析符号"何时"。
任何人都可以提供示例代码或语法如何用dataframe的condagumn in Intellij scala中的列表。
我的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"
我也尝试了Spark-Shell,这可以正常工作,但即使在intelliJ
上也可以正常工作。我认为您忘记了导入SQL功能。
import org.apache.spark.sql.functions._
尝试一下。如果不添加评论,这将解决问题谢谢