Scala 值toDF不是Seq[(Int,String)]的成员
我正在尝试执行以下代码,但出现此错误:Scala 值toDF不是Seq[(Int,String)]的成员,scala,apache-spark,Scala,Apache Spark,我正在尝试执行以下代码,但出现此错误: 值toDF不是Seq[(Int,String)]的成员。 我在main之外有case类,并且还导入了implicits。但我还是犯了这个错误。有人能帮我解决这个问题吗?我使用的是Spark 2.11-2.1.0和Scala 2.11.8 import org.apache.spark.sql._ import org.apache.spark.ml.clustering._ import org.apache.spark.ml.feature.
值toDF不是Seq[(Int,String)]的成员。
我在main之外有case类,并且还导入了implicits
。但我还是犯了这个错误。有人能帮我解决这个问题吗?我使用的是Spark 2.11-2.1.0
和Scala 2.11.8
import org.apache.spark.sql._
import org.apache.spark.ml.clustering._
import org.apache.spark.ml.feature.VectorAssembler
import org.apache.spark._
final case class Email(id: Int, text: String)
object SampleKMeans {
def main(args: Array[String]) = {
val spark = SparkSession.builder.appName("SampleKMeans")
.master("yarn")
.getOrCreate()
import spark.implicits._
val emails = Seq(
"This is an email from...",
"SPAM SPAM spam",
"Hello, We'd like to offer you")
.zipWithIndex.map(_.swap).toDF("id", "text").as[Email]
}
}
您已经有了一个
SparkSession
您可以导入spark.implicits.\u
在您的情况下有效
val spark = SparkSession.builder.appName("SampleKMeans")
.master("local[*]")
.getOrCreate()
import spark.implicits._
现在toDF
方法按预期工作
如果错误仍然存在,则需要检查正在使用的spark
和scala
库的版本
希望这有帮助 我已经编辑了我的问题。我试图执行您的建议导入spark.implicits.\u但仍然收到相同的错误。您是在
local
还是cluster
模式下运行的?如果您在本地运行,则需要将“纱线”替换为local[*]
我正在尝试在集群上运行。甚至在执行之前,我就在Eclipse中遇到了这个错误。是的,这正是我遇到的错误。这和版本有关吗?您使用的是哪个版本的spark和scala?为什么这里需要sparkContext?你只需要进口它,你就可以走了。仅供参考。。刚刚在spark shell中尝试了你的代码,它按预期工作。