Некоторые подводные камни в создании среды разработки sparkmllib -----

Большое количество данных

sparkmlib - это пакет, используемый spark для разработки машинного обучения, который реализует функцию машинного обучения на распределенных кластерах больших данных.Фреймворк также имеет tensorflow и deeplearning4j, но sparkmllib по своей сути легко интегрирован с hadoop, но короткая доска sparkmllib что он не может поддерживать глубокое обучение, в то время как тензорный поток и глубокое обучение поддерживают глубокое обучение.

Ладно, не говори глупостей, просто сделай это.

Среду разработки spark mllib рекомендуется собирать на ubuntu или centos, а не на windows

нет окон! ! ! , не окна! ! ! , Если не веришь мне, можешь попробовать. Если умрешь, не вини меня за то, что я не напомнил.

1. Установите среду разработки centos и ubantud, которая может быть реальной или виртуальной машиной.

2. Устанавливаем jdk, рекомендуется установить jdk8 и версия соответствует версии IDEA

3 Перейдите на официальный сайт IDEA, чтобы загрузить tar-пакет версии Linux, Baidu Centos или ubantu, чтобы установить IDEA просто

4 Загрузите scala, настройте переменные среды, забудьте о Baidu

Затем отверстие для ключа

После сборки файла 1pom нет jdk и scala

Первый шаг, щелкните файл, найдите структуру проекта, чтобы установить глобальные переменные и глобальные пакеты.

Второй шаг смотрите на картинку

image.png

Добавить замещающий текст Для этого изображения не указан замещающий текст Найдите плагины в настройках, чтобы узнать, есть ли в IDEA интегрированная scala.

image.png

Добавить замещающий текст Для этого изображения не указан замещающий текст Щелкните правой кнопкой мыши имя проекта и найдите AddFrameworkSupport.

image.png

Найдите scala, проверьте его, нажмите «ОК», чтобы сделать это, теперь в проекте есть scala, используйте локальный, сохраните файл pom для импорта, это слишком хлопотно

Весь POM файл

image.png

Просто импортируйте sparkmllib, вот тест, другие зависимости spark могут быть импортированы автоматически, в Интернете есть версия, которая импортирует слишком много пакетов, что легко может вызвать конфликты scala, что является большой ямой

Зайдите на официальный сайт Tsinghua Mirror и скачайте местную искру. данные в нем

Загрузите 13M, загрузите и распакуйте

Процедура тестирования следующая:


import org.apache.spark.ml.clustering.KMeans
import org.apache.spark.sql.SparkSession

/**
  * Created by baohe on 17-7-21.
  * Taking is cheap, fuck the code.
  */
object Hello {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder
      .appName(s"${this.getClass.getSimpleName}")
      .master("local")
      .getOrCreate()

    // $example on$
    // Loads data.
    val dataset = spark.read.format("libsvm").load("/root/spark-2.1.1/data/mllib/sample_kmeans_data.txt")

    // Trains a k-means model.
    val kmeans = new KMeans().setK(2).setSeed(1L)
    val model = kmeans.fit(dataset)

    // Evaluate clustering by computing Within Set Sum of Squared Errors.
    val WSSSE = model.computeCost(dataset)
    println(s"Within Set Sum of Squared Errors = $WSSSE")

    // Shows the result.
    println("Cluster Centers: ")
    model.clusterCenters.foreach(println)
    // $example off$

    spark.stop()
  }
}

ошибка запуска

image.png

Причина в том, что параметр области в файле pom требует локальной среды искры, У меня нет настоящей искры локально, поэтому закомментируйте ее.

image.png

тогда это сработало

Также выводятся центральные точки, полученные кластеризацией.

image.png

Локальный тест прошел успешно, не расслабляйтесь, текущий код не запаковать в jar и не запустить на кластере, это просто игрушка