Wizualizacja danych w PySpark przy użyciu DataFrames

Podstawy Big Data z PySpark

Upendra Devisetty

Science Analyst, CyVerse

Czym jest wizualizacja danych?

  • Wizualizacja danych to przedstawianie danych w postaci wykresów lub diagramów

  • Narzędzia open source do wizualizacji w Pythonie:

    • Matplotlib, Seaborn, Bokeh itp.
  • Wykresy z PySpark DataFrames można tworzyć trzema metodami

    • biblioteka pyspark_dist_explore

    • toPandas()

    • biblioteka HandySpark

Podstawy Big Data z PySpark

Wizualizacja danych przy użyciu Pyspark_dist_explore

  • Biblioteka Pyspark_dist_explore umożliwia szybki wgląd w DataFrames

  • Dostępne są trzy funkcje: hist(), distplot() oraz pandas_histogram()

test_df = spark.read.csv("test.csv", header=True, inferSchema=True)
test_df_age = test_df.select('Age')
hist(test_df_age, bins=20, color="red")
Podstawy Big Data z PySpark

Wizualizacja DataFrames przy użyciu Pandas

  • Tworzenie wykresów z pandas DataFrames jest proste
test_df = spark.read.csv("test.csv", header=True, inferSchema=True)
test_df_sample_pandas = test_df.toPandas()
test_df_sample_pandas.hist('Age')
  • Uwaga: Przy dużych zbiorach danych użycie toPandas() nie jest zalecane
Podstawy Big Data z PySpark

Pandas DataFrame a PySpark DataFrame

  • Pandas DataFrames działają w pamięci na jednym serwerze, natomiast operacje PySpark są wykonywane równolegle

  • W Pandas wyniki są generowane natychmiast, a operacje na PySpark DataFrame są wykonywane z opóźnieniem (lazy evaluation)

  • Pandas DataFrames są mutowalne, a PySpark DataFrames są niemutowalne

  • Pandas API obsługuje więcej operacji niż PySpark DataFrame API

Podstawy Big Data z PySpark

Wizualizacja metodą HandySpark

  • HandySpark to pakiet poprawiający wygodę pracy z PySpark
    • Łatwe pobieranie danych
    • Zachowanie obliczeń rozproszonych
test_df = spark.read.csv('test.csv', header=True, inferSchema=True)
hdf = test_df.toHandy()
hdf.cols["Age"].hist()
Podstawy Big Data z PySpark

Zwizualizujmy DataFrames

Podstawy Big Data z PySpark

Preparing Video For Download...