powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Spark :: ворчалка
20 сообщений из 20, страница 1 из 1
Spark :: ворчалка
    #40123462
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Библиотека MLib расколота на 2 направления. Первое - на суппорте mlib, И второе в активной разработке - ml.

https://spark.apache.org/docs/latest/ml-guide.html org.apache.spark.mlib (obsolete)

RDD-based machine learning APIs (in maintenance mode).

The spark.mllib package is in maintenance mode as of the
Spark 2.0.0 release to encourage migration to the
DataFrame-based APIs under the org.apache.spark.ml
package. While in maintenance mode,

* no new features in the RDD-based spark.mllib package will be accepted, unless they block implementing new features in the DataFrame-based spark.ml package

* bug fixes in the RDD-based APIs will still be accepted

The developers will continue adding more features to
the DataFrame-based APIs in the 2.x series to reach
feature parity with the RDD-based APIs. And once we
reach feature parity, this package will be
deprecated.

автор org.apache.spark.ml

DataFrame-based machine learning APIs to let users
quickly assemble and configure practical machine
learning pipelines.

Проблема в том что большинство учебных примеров адресованы именно к старому варианту.
В старом варианте работа идет с RDD-шками. Это такой себе "нетипизированный" вариант выборки
больших данных. Как аналог - строчка JSON.

В новом варианте (более вкусном) DataFrame/DataSet (оба похожи )мы имеем хотя-бы декларацию
колоночек и типов (DataSet)
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40123630
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Я давно читал, что вроде бы RDD Depricated И нужно переходить на DataFrame/DataSet...
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40123633
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я нарисовал такую табличку для себя. Я не автор. Стащил с чьей-то презентации. Просто без этого
обзора иногда трудно понять какой API вообще надо использовать.

RDDDataFrameDatasetCommentsWhatCollectionNamed columnsExtension of DataFrameWhen1.01.31.6Compiletime type safetyNoNoYesAPINoYesYesMeans: agg,select,sumSparkSQLNoYesYesCatalyst optimizerNoYesYesTungsten componentNoYesYesAdvanced encodersNoNoYes
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40123731
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно определен DataFrame. Это просто генерик датасета шаблонизированный строкой Row.

Код: java
1.
type DataFrame = Dataset[Row]



Интересно в старых версиях (до ДатаСета) датафрейм наверное как-то определялся по другому.
Но этот алиас в целях совметсимости должен был обеспечивать безшовный переход от одного определения
типа к другому на базе алиаса.
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40124080
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С библиотекой ML - непонятно. Она не работает с датафреймами. Ей нужен некий ассемблер.
Это трансформер который преобразует исходный датафрейм в другой где интересующие
факторы и отклики или input/output cols сгруппированы в мини-векторы в каждой ячейке.
Зачем - непонятно. Как по мне - лишнее телодвижение в памяти. Возможно имеет место экономия
для сериализации.

Вообще многие алгоритмы типа DecisionTree, Random Forest не умеют работать строковым перечислением
(enum). Вы должны вручную его отобразить на набор вещественных величин { 1.0, 2.0 ...}.

И самое забавное что отчот о decision-tree выдается в таком-же уродском формате где факторы
перечислены в виде алиасов типа col1, col2 и резолюция в виде числа. Дальше - рутина по переводу
обратно. Впрочем она частично автоматизирована через такие-же stages ML но они есть.

Эксперименты я гонял на Ирисах Фишера. Это самый неподходящий сет для Tree но мне было пофиг.
Главное - попробовать.
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136313
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Словил такой баг.

Вот так работает.

Код: java
1.
2.
3.
4.
5.
6.
    val weatDs : Dataset[Weat] = weather
      .map(row => enrichWeatWithGeoHashCode(row)) // Option[Weather]
      .filter(_.isDefined)
      .map(_.get)
      //.repartition(24, col("geo_hash"))
      .cache()



Если сделать repartition то получаю в логах

Код: java
1.
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.wrapRefArray([Ljava/lang/Object;)Lscala/collection/mutable/WrappedArray;
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136314
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, такое обычно падает, когда спарк хочет одну версию скалы, а ему подсовывают другую - надо смотреть, какие версии зависмостей используются
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136317
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
build.sbt
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
name := "maytonsparkbasics"

version := "0.1"

scalaVersion := "2.12.15"

retrieveManaged := true

libraryDependencies ++= Seq(
  "ch.hsr" % "geohash" % "1.4.0",
  "org.apache.spark" %% "spark-sql" % "3.2.1" % "provided",
  "org.apache.spark" %% "spark-core" % "3.2.1" % "provided",
  // Unit testing
  "org.scalatest" %% "scalatest" % "3.2.6" % Test,
  "org.scalatest" %% "scalatest-funsuite" % "3.2.11" % Test,
  "org.scalacheck" %% "scalacheck" % "1.15.4" % Test,
  "com.holdenkarau" %% "spark-testing-base" % "3.2.0_1.1.1" % Test
)



и отдельный шелл скриптик которым я запускаю локально

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
#!/usr/bin/env bash

set -e

mkdir -p target/scala-2.12/

cp -f "$M2_HOME/ch/hsr/geohash/1.4.0/geohash-1.4.0.jar" target/scala-2.12/

sbt package

spark-submit \
 --master local[1] \
 --deploy-mode client \
 --class mayton.Sparkbasics \
 --jars target/scala-2.12/geohash-1.4.0.jar,$SCALA_HOME/lib/scala-library.jar \
 --conf "apiKey=$GEO_API_KEY" \
 target/scala-2.12/maytonsparkbasics_2.12-0.1.jar 



Запускается под Windows11 в окружении WSL/Ubuntu. Версию Scala ставил одну без вариантов.
Код: java
1.
2.
$ scala -version
Scala code runner version 2.12.15 -- Copyright 2002-2021, LAMP/EPFL and Lightbend, Inc.



Spark - 3.2.1. со встроенным Hadoop-ом.
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136319
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Spark - 3.2.1. со встроенным Hadoop-ом.

В самом дистрибутиве спарка лежит версия для 2.12 или 2.13? В клаудеровских дистрибутивах могут быть установлены несколько версий спарка одновременно - для уверенности в web-ui можно глянуть, какая версия используется. Да и 3.2.1 новая версия - может и вправду что-то не так сделали
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136320
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос - что не так?
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136322
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spark-submit подтягивает свои джарки скалы и спарка, а не только те, которые указаны в --jars. Вот версии в этих джарках и надо сравнить с версиями при компиляции. Это первый кандитат на причину для NoSuchMethodError
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136323
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
del
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136351
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если убрать scala-library.jar то другая ошибка сразу на старте.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
2022-02-25 09:39:56,861 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Exception in thread "main" java.lang.NoClassDefFoundError: scala/Serializable
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
        at java.lang.Class.getMethod0(Class.java:3018)
        at java.lang.Class.getMethod(Class.java:1784)
        at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:42)
        at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:955)
        at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
        at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
        at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
        at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1043)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1052)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: scala.Serializable
        at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 24 more
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136355
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ключевой вопрос: какие джарки лежат в $SPARK_HOME/jars? И какая версия scala отбражается в WEB-UI?
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136372
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда. Действительно я пытался собирать в одном компилляторе а Spark подсовывал другой runtime.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
C:/mnt/c/spark/3.2.1-hadoop/jars$ ls -1 scala*
scala-collection-compat_2.13-2.1.1.jar
scala-compiler-2.13.5.jar
scala-library-2.13.5.jar
scala-parallel-collections_2.13-1.0.3.jar
scala-parser-combinators_2.13-1.1.2.jar
scala-reflect-2.13.5.jar
scala-xml_2.13-1.2.0.jar



Вобщем пока fixed. Спасибо.
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136623
adminDontSleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,переходи на джаву) спарк мертв
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136625
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спарк разрабатывается на Scala. Какой смысл мне переходить в разработке на Java/Python?
Я хочу читать стектрейсы ошибок и понимать суть того что происходит. Как ты планируешь
понимать суть ошибки языка который ты не знаешь?
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136638
adminDontSleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Спарк разрабатывается на Scala. Какой смысл мне переходить в разработке на Java/Python?
Я хочу читать стектрейсы ошибок и понимать суть того что происходит. Как ты планируешь
понимать суть ошибки языка который ты не знаешь?

а логи в отменили разве?
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136639
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Спарк разрабатывается на Scala.

не факт. скорее на c++ databricks разрабатывает, а потом уже портирует какую-то часть в опенсорс. в их облаке енжин и оптимизатор catalyst на c++ как я слышал.
...
Рейтинг: 0 / 0
Spark :: ворчалка
    #40136642
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep
mayton
Спарк разрабатывается на Scala. Какой смысл мне переходить в разработке на Java/Python?
Я хочу читать стектрейсы ошибок и понимать суть того что происходит. Как ты планируешь
понимать суть ошибки языка который ты не знаешь?

а логи в отменили разве?

Твой вопрос - как из Кащенко.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spark :: ворчалка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (2): Анонимы (2)
Пользователи онлайн (12): Bing Bot, Анонимы (9), Yandex Bot, Google Bot 6 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]