GNU/Linux >> Znalost Linux >  >> Ubuntu

Co je Spark DataFrame?

Úvod

Spark DataFrame je integrovaná datová struktura se snadno použitelným API pro zjednodušení distribuovaného zpracování velkých dat. DataFrame je k dispozici pro univerzální programovací jazyky, jako je Java, Python a Scala.

Jedná se o rozšíření rozhraní Spark RDD API optimalizované pro efektivnější psaní kódu při zachování výkonu.

Tento článek vysvětluje, co je Spark DataFrame, funkce a jak používat Spark DataFrame při shromažďování dat.

Předpoklady

  • Spark nainstalován a nakonfigurován (postupujte podle našeho průvodce:Jak nainstalovat Spark na Ubuntu, Jak nainstalovat Spark na Windows 10).
  • Prostředí nakonfigurované pro použití Spark v Javě, Pythonu nebo Scale (tato příručka používá Python).

Co je to DataFrame?

DataFrame je programová abstrakce v modulu Spark SQL. DataFrames se podobají relačním databázovým tabulkám nebo excelovým tabulkám se záhlavími:data jsou umístěna v řádcích a sloupcích různých datových typů.

Zpracování je dosaženo pomocí složitých uživatelsky definovaných funkcí a známých funkcí pro manipulaci s daty, jako je řazení, spojení, seskupení atd.

Informace pro distribuovaná data jsou strukturována do schémat . Každý sloupec v DataFrame obsahuje sloupec name , datový typ, a možnost null vlastnosti. Když možnost hodnoty null je nastaveno na pravda , sloupec přijímá null vlastnosti také.

Jak funguje datový rámec?

DataFrame API je součástí modulu Spark SQL. Rozhraní API poskytuje snadný způsob práce s daty v rámci Spark SQL při integraci s univerzálními jazyky jako Java, Python a Scala.

I když existují podobnosti s Python Pandas a datovými rámci R, Spark dělá něco jiného. Toto API je šité na míru pro integraci s rozsáhlými daty pro datovou vědu a strojové učení a přináší četné optimalizace.

Spark DataFrames jsou distribuovatelné napříč několika clustery a optimalizovány pomocí Catalyst. Optimalizátor Catalyst přijímá dotazy (včetně příkazů SQL aplikovaných na DataFrames) a vytváří optimální plán paralelních výpočtů.

Pokud máte zkušenosti s datovým rámcem Python a R, kód Spark DataFrame vypadá povědomě. Na druhou stranu, pokud používáte Spark RDD (Resilient Distributed Dataset), informace o struktuře dat poskytuje příležitosti k optimalizaci.

Tvůrci Sparku navrhli DataFrames tak, aby se co nejúčinněji vypořádaly s velkými datovými výzvami. Vývojáři mohou využít sílu distribuovaného počítání se známými, ale více optimalizovanými API.

Funkce datových rámců Spark

Spark DataFrame přichází s mnoha cennými funkcemi:

  • Podpora různých datových formátů, jako je Hive, CSV, XML, JSON, RDD, Cassandra, Parquet atd.
  • Podpora integrace s různými nástroji Big Data.
  • Schopnost zpracovávat kilobajty dat na menších počítačích a petabajty na clusterech.
  • Optimalizátor katalyzátorů pro efektivní zpracování dat ve více jazycích.
  • Zpracování strukturovaných dat prostřednictvím schematického zobrazení dat.
  • Vlastní správa paměti pro snížení přetížení a zlepšení výkonu ve srovnání s RDD.
  • Rozhraní API pro Java, R, Python a Spark.

Jak vytvořit Spark DataFrame?

Existuje několik metod, jak vytvořit Spark DataFrame. Zde je příklad, jak jej vytvořit v Pythonu pomocí prostředí notebooku Jupyter:

1. Inicializujte a vytvořte relaci API:

#Add pyspark to sys.path and initialize
import findspark
findspark.init()
#Load the DataFrame API session into Spark and create a session
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

2. Vytvořte data o hračkách jako seznam slovníků:

#Generate toy data using a dictionary list
data = [{"Category": 'A', "ID": 1, "Value": 121.44, "Truth": True},
        {"Category": 'B', "ID": 2, "Value": 300.01, "Truth": False},
        {"Category": 'C', "ID": 3, "Value": 10.99, "Truth": None},
        {"Category": 'E', "ID": 4, "Value": 33.87, "Truth": True}
        ]

3. Vytvořte DataFrame pomocí createDataFrame a předat data seznam:

#Create a DataFrame from the data list
df = spark.createDataFrame(data)

4. Vytiskněte schéma a tabulku pro zobrazení vytvořeného DataFrame:

#Print the schema and view the DataFrame in table format
df.printSchema()
df.show()

Jak používat DataFrames

Strukturovaná data uložená v DataFrame poskytují dvě manipulační metody

  • Použití jazyka specifického pro doménu
  • Použití SQL dotazů.

Následující dvě metody používají DataFrame z předchozího příkladu k výběru všech řádků, kde je sloupec Pravda nastaven na hodnotu true, a seřadí data podle sloupce Hodnota.

Metoda 1:Použití dotazů specifických pro doménu

Python poskytuje vestavěné metody pro filtrování a třídění dat. Vyberte konkrétní sloupec pomocí df.<column name> :

df.filter(df.Truth == True).sort(df.Value).show()

Metoda 2:Použití SQL dotazů

Chcete-li používat dotazy SQL s DataFrame, vytvořte zobrazení pomocí createOrReplaceTempView vestavěnou metodu a spusťte dotaz SQL pomocí spark.sql metoda:

df.createOrReplaceTempView('table')
spark.sql('''SELECT * FROM table WHERE Truth=true ORDER BY Value ASC''')

Výstup zobrazuje výsledky dotazu SQL aplikované na dočasné zobrazení DataFrame. To umožňuje vytvářet více pohledů a dotazů na stejná data pro komplexní zpracování dat.


Ubuntu
  1. Hadoop vs Spark – podrobné srovnání

  2. Co je to relační databáze?

  3. Jak rm funguje? Co dělá rm?

  1. Co je databáze NoSQL? – Vysvětlení NoSQL

  2. Co je HDFS? Průvodce distribuovaným souborovým systémem Hadoop

  3. Co je relační databáze?

  1. Co je Git?

  2. Jak vytvořit Spark DataFrame

  3. Co je úložiště Git?