niedziela, 29 listopada 2015

Warsztaty z Dataframe i wyzwania edukacji

Problem : Jak zainteresować słuchaczy czymś co z wierzchniej perspektywy przypomina zwykłą tabele SQL ale jest w sumie czymś innym i stanowi bazę do zgłębiania DataScience na Sparku?

Plan na warsztat jest gotowy i można się zapisywać----> MIGAJACE BOMBKI STRONA MEETUPA MIGAJACE BOMBKI

Zaś materiały są tutaj ---> https://pawelwlodarski.gitbooks.io/workshops/content/spark_dataframes.html

By było ciekawie można..

Nawiązać do rzeczy już poznanych. Ten motyw pojawia się w książce "Power of habit". Podobno przebój OutKast "Hey Ya" wcale nie był przebojem ale wytwornie, które mogą wywierać nacisk na radiostacje ten nacisk wymogły i HEYYA było puszczane pomiędzy przebojami PRZEBOJ<-->HEYYA<-->PRZEBOJ i ludzie się przyzwyczajali.

Dlatego tez warsztat zaczniemy od nieśmiertelnego przykładu zliczania słów z pliku LICENSE. To akurat z pełną powagą powinno ładnie pokazać porównanie pomiędzy RDD i tym co oferuje Dataframe. Ćwiczenia będziemy robić krok po kroku z dokładnym badaniem web UI.

Można dać jakieś ciekawe dane

  • polityka - zły pomysł bo ludzie się pozabijają
  • Coś z wóda bo to zawsze jest śmieszne - ale może lepiej nie bo to niezdrowe
  • Czołgi,pistolety itd - no tez dzisiaj nie da rady
  • To może jednak wóda? Ale nie mogę znaleźć CSV z danymi o wódzie na necie także nie wóda :(
  • No to będzie piłka nożna!

Będzie wczytywanie danych bezpośrednio z CSV, wykrywanie schemy oraz datascience przy obliczaniu statystyk piłkarskich. Czyli na przykład pokażemy jak łatwo znależć najbardziej i najmniej skuteczną drużynę piłkarską + możemy znaleźć co tylko dusza zapragnie.

Można pokazać Sparka w kontekście całego ekosystemu BigData

W tym celu trzeba sobie zainstalować quickstart z cloudery. Powinno to być dosyć łatwe i od razu rozwiązuje problem z tym, ze Spark 1.5 nie działa na windowsie. W trakcie ćwiczeń zaczytamy dane z Hive a Hive zrobił Facebook a Facebook używa realnie Haskella i OCamla co na razie nic nie wnosi ale jest ciekawe

Także to może być dla wielu pierwsze spotkanie z szerszym ekosystemem hadoopa.

Można trochę pokazać języka R

I pokażemy bo R jest od DataScience. Bardzo ciekawy język, z którego pożyczono Dataframes. Przykłady do samodzielnego wykonania możesz znaleźć tutaj --> http://pawelwlodarski.blogspot.com/2015/09/dataframes.html

Można nawiązać do FP

Bo FP jest zawsze ciekawe. Mamy coś takiego :

scala> val fun:Int=>Int = x=>x+1
fun: Int => Int = <function1>

scala> :t udf(fun).apply _
Seq[org.apache.spark.sql.Column] => org.apache.spark.sql.Column

No i teraz możemy zobaczyć, że udf to funkcja, która zamienia (A=>B) => UserDefinedFunction

UseDefinedFunction z powodów praktycznych ma varargsa w apply i poprzez wywołanie (chyba ETA expansion)
UserDefinedFunction.apply _ dochodzimy do (A=>B) => Seq[Column] => Column

Teraz siłą wyobraźni można napisać coś takiego

scala> val lift :(Int=>Int) => (Column=>Column) = f=> a => udf(f).apply(a)
lift: (Int => Int) => (org.apache.spark.sql.Column => org.apache.spark.sql.Column) = <function1>

scala> :t lift
(Int => Int) => (org.apache.spark.sql.Column => org.apache.spark.sql.Column)

(Int => Int) => (Column => Column) to taki naciągany Functor ale zawsze coś zabawnego z Teorii Kategorii. Także zapraszam. --> http://www.meetup.com/Java-User-Group-Lodz/events/225016091/

Brak komentarzy:

Prześlij komentarz