Spark ML库

时间:2018-04-19 22:40:16

标签: apache-spark apache-spark-mllib

我正在测试我在MLlib:Main Guide中找到的Scala代码 Machine Learning Library (MLlib) Guide

val df = data.map(Tuple1.apply).toDF("features")

但是这一行报告错误。

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-mllib -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-mllib_2.11</artifactId>
        <version>2.3.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.3.0</version>
    </dependency>

</dependencies>

它说,     “值toDF不是Seq的成员[(org.apache.spark.ml.linalg.Vector,)]”

好像值数据(Seq [Vector])没有map方法?

关于如何进行的任何想法?

以下是我的pom.xml

{{1}}

2 个答案:

答案 0 :(得分:0)

此时,您没有SparkSession或任何已启动的内容。我相信toDF来自导入spark.implicits._,其中sparkSparkSession。文档有时并不清楚和/或假设您在Spark shell中工作,它会自动创建会话。

您的代码确实在spark shell中运行。

答案 1 :(得分:0)

这是因为缺少scala.Seq的隐式转换。

要解决您的问题,请添加这些行

val name = "application name"
val spark = SparkSession
  .builder
  .appName(name)
  .master("local")
  .getOrCreate()

import spark.implicits._

希望它有所帮助!