值toDF不是Seq [(Int,String)]的成员

时间:2018-04-18 12:51:38

标签: scala apache-spark

我正在尝试执行以下代码但收到此错误: value toDF is not a member of Seq[(Int,String)]

我在main之外有案例类,我也导入了implicits。但我仍然得到这个错误。有人可以帮我解决这个问题吗?我正在使用Spark 2.11-2.1.0Scala 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]

    }
  }

1 个答案:

答案 0 :(得分:2)

您已经拥有SparkSession import spark.implicits._ val spark = SparkSession.builder.appName("SampleKMeans") .master("local[*]") .getOrCreate() import spark.implicits._ 将适用于您的情况

toDF

现在spark方法按预期工作。

如果错误仍然存​​在,您需要检查您正在使用的scala和{{1}}库的版本。

希望这有帮助!