PySpark Číst CSV()

Pyspark Cist Csv



Sestavení PySpark DataFrame z CSV dat je možné v PySpark pomocí funkce read.csv(). V některých scénářích, pokud chcete načíst externí data do PySpark DataFrame, PySpark podporuje mnoho formátů jako JSON, CSV atd. V tomto tutoriálu uvidíme, jak číst data CSV a načíst je do PySpark DataFrame. Také si probereme načítání více souborů CSV do jednoho DataFrame najednou s příklady.

Pyspark.sql.DataFrameReader.csv()

Tato metoda se používá ke čtení dat ze souboru/souborů CSV a jejich ukládání do PySpark DataFrame. Přebírá možnosti při čtení CSV do DataFrame. Podrobně probereme různé možnosti s příklady. Při předávání více než jednoho souboru CSV je důležité předávat názvy souborů s příponou v seznamu, který je oddělen operátorem čárky. Pokud čtete pouze jeden soubor CSV, není nutné uvádět název souboru v seznamu.

Syntax:







Jeden soubor - spark_app.read.csv(‘soubor.csv‘, možnosti …)

Více souborů – spark_app.read.csv([‘soubor1.csv’,’soubor2.csv’,…],možnosti…)



Je také možné oddělit možnosti a názvy souborů.



Jeden soubor – spark_app.read.options(options…).csv(‘soubor.csv’)





Více souborů – spark_app.read.options(options…).csv([‘soubor1.csv‘,‘soubor2.csv‘,…])

Před implementací následujících příkladů nainstalujte knihovnu PySpark.



pip nainstalovat pyspark

Po úspěšné instalaci můžete vidět výstup takto:

Scénář 1: Čtení záhlaví souboru CSV

Vytvořme soubor CSV s názvem „person_skill.csv“ s 5 záznamy, který je zobrazen níže, a načteme jej do PySpark DataFrame:

Parametr záhlaví se používá k určení názvů sloupců v PySpark DataFrame. Vyžaduje booleovskou hodnotu. Pokud je to „True“, skutečné názvy sloupců, které existují v souboru CSV, jsou specifikovány v DataFrame, V opačném případě jsou zadány c0, c1, c2… a skutečné názvy sloupců budou řádek. Nejvhodnější je nastavit parametr záhlaví na hodnotu true.

Příklad 1: Záhlaví = True

importovat pyspark

z pyspark.sql importujte SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# Načtěte soubor csv s názvem - person_skill.csv do dovedností s popisky sloupců s hlavičkou

dovednosti = linuxhint_spark_app.read.csv( 'person_skill.csv' , záhlaví = Pravda)

# Zobrazte DataFrame

skills.show()

Výstup:

Vysvětlení:

Vidíme, že PySpark DataFrame je vytvořen ze souboru CSV se zadanými sloupci a řádky.

Ke kontrole sloupců použijte následující příkaz:

dovednosti.sloupce

Příklad 2: Záhlaví = False

importovat pyspark

z pyspark.sql importujte SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# Načtěte soubor csv s názvem - person_skill.csv do dovedností s popisky sloupců bez záhlaví

dovednosti = linuxhint_spark_app.read.csv( 'person_skill.csv' , záhlaví = nepravda)

# Zobrazte DataFrame

skills.show()

Výstup:

Vysvětlení:

Vidíme, že PySpark DataFrame je vytvořen ze souboru CSV bez existujících sloupců.

Stávající sloupce jsou také uloženy jako řádky v PySpark DataFrame.

dovednosti.sloupce

Použití Read.options.csv()

Nyní čteme soubor CSV pomocí metody read.options.csv(). Zde musíme předat možnosti jako oddělovač, záhlaví atd. v možnostech jako argumenty a název souboru v csv(). Předáme parametr záhlaví jeho nastavením na „True“.

Scénář 1:

importovat pyspark

z pyspark.sql importujte SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# Použití read.options.csv()

dovednosti = linuxhint_spark_app.read. možnosti ( záhlaví =True).csv( 'person_skill.csv' )

# Zobrazte DataFrame

skills.show()

Výstup:

Scénář 2: Čtení oddělovače souboru CSV

Parametr oddělovače přebírá znak, který se používá k oddělení každého pole. Ve výchozím nastavení trvá čárku (,). Použijme stejný soubor CSV jako v prvním scénáři a jako oddělovač předáme čárku (‘,’).

importovat pyspark

z pyspark.sql importujte SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# Použití read.options.csv() s oddělovačem spolu se záhlavím

dovednosti = linuxhint_spark_app.read. možnosti ( záhlaví =Pravda, oddělovač= ',' .csv( 'person_skill.csv' )

# Zobrazte DataFrame

skills.show()

Výstup:

Čtení více souborů

Doposud jsme četli jeden soubor CSV. Podívejme se, jak číst více než jeden soubor CSV. V tomto scénáři jsou řádky ve více souborech připojeny do jednoho PySpark DataFrame. Potřebujeme pouze předat názvy souborů v seznamu v rámci metody.

Příklad:

Mějme následující soubory CSV s názvem „person_skill.csv“ a „person_skill2.csv“ s následujícími údaji:


Přečtěte si tyto dva soubory CSV a uložte je do jednoho datového rámce PySpark.

importovat pyspark

z pyspark.sql importujte SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()

# Načtěte 2 soubory csv s názvem - person_skill.csv a person_skill2.csv do dovedností s popisky sloupců s hlavičkou

dovednosti = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ], sep= ',' , záhlaví = Pravda)

skills.show()

Výstup:

Vysvětlení:

První CSV má 6 záznamů a druhý CSV má 3 záznamy. Vidíme, že první CSV se načte do DataFrame jako první. Poté se načte druhý CSV. Nakonec PySpark DataFrame uchovává 9 záznamů.

Závěr

Čtení CSV do PySpark DataFrame je docela jednoduché pomocí metody pyspark.sql.DataFrameReader.csv(). Této metodě může být možné předat parametry záhlaví a oddělovače, aby bylo možné určit sloupce a formát. PySpark také podporuje čtení více souborů CSV najednou pomocí poskytovaných metod spolu s jejich možnostmi. V tomto článku jsme viděli příklady při zvažování různých možností. Také jsme viděli dva způsoby předání možností metodě.