Pyspark – podstawowe transformacje i akcje

    No Comments

    Transformacje tworzą nowe obiekty RDD , również na podstawie innego obiektu RDD.
    Silnik Apache Spark potrafi przeanalizować sekwencję transformacji.
    Akcje wykonują na obiektach RDD działania, których wynikiem nie jest RDD i działania te wymuszają wykorzystanie definicji RDD wraz z sekwencją transformacji.

    Proste przykłady w pySparku.

    Out[2]:

    Out[3]: pyspark.context.SparkContext

    Out[4]:[1, 2, 3, 4, 5, 6]
    Out[4]:6

    Out[5]:[1, 2, 3, 4, 5, 6]

    Out[5]:[2, 4, 6, 8, 10, 12]

    Out[6]:[1, 2, 3, 4, 5, 6]

    Out[6]:[2, 4, 6]

    Out[7]: [1, 2, 3, 4, 5, 6]

    Out[7]:[[1, 2], [2, 4], [3, 6], [4, 8], [5, 10], [6, 12]]

    Out[8]:[1, 2, 3, 4, 5, 6]

    Out[8]:[1, 3, 2, 4, 3, 5, 4, 6, 5, 7]

    Out[9]:[1, 2, 3, 4, 5, 6]

    Out[9]:720

    Out[10]:[2, 4, 6]

    Out[10]:[1, 3, 5]

    Out[10]:[2, 4, 6, 1, 3, 5]

    Out[11]:[1, 2, 3, 4, 5, 6, 3, 4, 5]

    Out[11]:[2, 4, 6, 1, 3, 5]

    Out[12]:[2, 4, 6]

    Out[12]:[1, 3, 5]

    Out[12]:[2, 4, 6, 1, 3, 5]

    Out[12]:[]

    Out[12]:[4, 2, 6]

    Out[12]:[(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (6, 1), (6, 3), (4, 5), (6, 5)]

    Categories: Apache, Python, Spark

    Apache Spark – pierwsze początki

    2 komentarze

    Poradnik:

    Jak uruchomić na komputerze z MS Windows lokalną instancję Apache Sparka pracującą na jednym nodzie z gotową obsługą skryptów w Pythonie (pyspark) i przykładowymi zbiorami danych.

    Na podstawie materiałów ze strony
    http://semantica.cs.lth.se/pyspark/#/pyspark-vm

    Dla tych, którzy na co dzień korzystają ze stacji roboczej MS Windows.

    Potrzebne oprogramowanie
    a) Virtual Box ( wirtualizator)
    https://www.virtualbox.org/wiki/Downloads
    Instalujemy najwyższą wersję , jaką aktualnie obsługuje Vagrant
    GUI VirtualBoxa nie będzie wogóle wykorzystywane.

    b) Vagrant (nakładka na wirtualizator)

    https://www.vagrantup.com/downloads.html

    Instalujemy obraz

    To chwilę trwa, cierpliwości, obraz  ponad 1 GB objętości.

    Sprawdzamy zainstalowane obrazy maszyn wirtualnych.

    Sprawdzamy status maszyn

    Uruchamiamy maszynę wirtualną

    Jak wygląda plik VagrantFile, warto na niego spojrzeć, w szczególności na numery portów, które są forwardowane.

    Uwagi, które mogą zmniejszyć frustrację:

    Jeśli zainstalujemy zbyt nową wersję VirtualBoxa Vagrant jej nie wykryje, a co więcej będzie komunikować nas o braku HyperV.

    Co ciekawe na komputerach z windows 7 pro  instalacja tego typu oprogramowania jest możliwa, ale tej wersji nie testowałem,

    pozostajemy przy oprogramowaniu Virtualbox.

    Dla dociekliwych:

    https://www.altkomakademia.pl/baza-wiedzy/qna/discussion/2763/instalacja-hyper-v-manager-w-windows-7-
    Na stacjach z Windows 7 standardowo zainstalowany jest powershell w versji 2.0. Wykonanie polecenia Vagrant up nie kończy się. Należy zaktualizować framework np. do wersji 4.0.

    Wersja PowerShella przed:

    Po instalacji ze strony Microsoftu

    https://www.microsoft.com/en-us/download/details.aspx?id=40855

    Wersja powershella po:

    W wersji VirtualBox (5.1) domyślnie nie ma dostępu do sieci zewnętrznej od środka maszyny, przez co nie można zaktulizować jej oprogramowania. Pomaga poprawa w pliku konfiguracyjnym Vagrantfile

    Należy dodać w pliku Vagranfile dodatkowe linie kodu

    Pierwsze kroki

    1. Uruchomienie skryptu Pythona w notatniku Jupiter

    Uruchamiany stronę http://localhost:8081

    Jako silnik wybieramy pyspark

    W pierwszej komórce wpisujemy

    Wyjście
    Out[1]:

    W drugiej komórce

    Wyjście:
    Out[2]: pyspark.context.SparkContext

    Przykładowy wygląd notatnika

    Pyspark

    2. Aktualizujemy dostępne pliki z danymi

    Uruchamiamy stronę http://localhost:8082
    Naciskamy przycisk “Update all” i czekamy cierpliwie na aktualizację, jeden z plików ma ponad 2GB danych.
    Po aktualizacji wygląda to tak

    Datasets

     

     

    Dostęp do UI Sparka jest  pod adresem

    http://localhost:4040

    localhost_4040

    Dostęp przez SSH

     

    Dostęp do maszyny przez SSH jest na porcie 2222 interfejsu lokalnego.

    ssh_session_pyspark

     

    Z pliku private_key należy wygenerować klucz prywatny , który będzie mógł być użyty przez PuttySSH.

    U mnie plik znajduje się w podkatalogu, w którym zainstalowano  przez Vagranta  wirtualną maszynę:

    tak wygenerowany klucz prywatny należy wskazać na zakladce Connection/SSH/Auth.

    ssh_auth_pyspark

    Po uruchomieniu połączenia i akceptacji klucza logujemy  się na użytkownika vagrant  z pustym hasłem.

    ssh_auth_loginvagrant

     

    Po zakończeniu pracy wystarczy wyłączyć maszynę wirtualną

    Categories: Apache, Big Data, Python, Spark