PySpark DataFramen muuntaminen CSV:ksi

Pyspark Dataframen Muuntaminen Csv Ksi



Katsotaanpa neljää eri skenaariota PySpark DataFramen muuntamiseksi CSV:ksi. Suoraan käytämme write.csv()-menetelmää PySpark DataFramen muuntamiseen CSV-muotoon. Muunnamme PySpark Pandas DataFramen CSV-muotoon käyttämällä to_csv()-funktiota. Se voi olla mahdollista myös muuntamalla se NumPy-taulukkoon.

Sisällön aihe:

Jos haluat tietää PySpark DataFramen ja moduulin asennuksesta, käy läpi tämä artikla .







PySpark DataFrame CSV:ksi muuntamalla Pandas DataFrameksi

To_csv() on Pandas-moduulissa käytettävissä oleva menetelmä, joka muuntaa Pandas DataFramen CSV:ksi. Ensin meidän on muutettava PySpark DataFrame Pandas DataFrameksi. ToPandas()-menetelmää käytetään tähän. Katsotaanpa to_csv():n syntaksia ja sen parametreja.



Syntaksi:



pandas_dataframe_obj.to_csv(polku/ 'tiedoston_nimi.csv' , otsikko ,indeksi,sarakkeet,tila...)
  1. Meidän on määritettävä CSV-tiedoston tiedostonimi. Jos haluat tallentaa ladatun CSV-tiedoston tiettyyn paikkaan tietokoneellasi, voit myös määrittää polun tiedostonimen kanssa.
  2. Sarakkeet sisällytetään, jos otsikon arvo on 'True'. Jos et tarvitse sarakkeita, aseta otsikoksi 'False'.
  3. Indeksit määritetään, jos indeksin arvo on 'True'. Jos et tarvitse indeksejä, aseta indeksiksi 'False'.
  4. Sarakkeet-parametri ottaa luettelon sarakkeiden nimistä, joissa voimme määrittää, mitkä tietyt sarakkeet puretaan CSV-tiedostoon.
  5. Pystymme lisäämään tietueet CSV:hen mode-parametrin avulla. Liitä - 'a' käytetään tähän.

Esimerkki 1: Otsikko- ja indeksiparametrit

Luo 'skills_df' PySpark DataFrame, jossa on 3 riviä ja 4 saraketta. Muunna tämä DataFrame CSV:ksi muuntamalla se ensin Pandas DataFrameksi.





tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

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

# taitotiedot, joissa on 3 riviä ja 4 saraketta

taidot =[{ 'id' : 123 , 'henkilö' : 'Hunaja' , 'taito' : 'maalaus' , 'palkinto' : 25 000 },

{ 'id' : 112 , 'henkilö' : 'Mouni' , 'taito' : 'tanssi' , 'palkinto' : 2000 },

{ 'id' : 153 , 'henkilö' : 'Tulasi' , 'taito' : 'lukeminen' , 'palkinto' : 1200 }

]

# luo taitojen tietokehys yllä olevista tiedoista

skill_df = linuxhint_spark_app.createDataFrame(skills)

skill_df.show()

# Muunna skill_df pandas DataFrameksi

pandas_skills_df= skill_df.toPandas()

tulosta (pandas_skills_df)

# Muunna tämä DataFrame csv:ksi otsikolla ja indeksillä

pandas_skills_df.to_csv( 'pandas_skills1.csv' , otsikko =True, index=True)

Lähtö:



Näemme, että PySpark DataFrame muunnetaan Pandas DataFrameksi. Katsotaan, muunnetaanko se CSV:ksi sarakkeiden nimillä ja indekseillä:

Esimerkki 2: Liitä tiedot CSV-tiedostoon

Luo vielä yksi PySpark DataFrame, jossa on yksi tietue, ja liitä tämä CSV-tiedostoon, joka on luotu osana ensimmäistä esimerkkiämme. Varmista, että meidän on asetettava otsikko 'False' yhdessä tilaparametrin kanssa. Muussa tapauksessa sarakkeiden nimet liitetään myös riviksi.

tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

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

taidot =[{ 'id' : 90 , 'henkilö' : 'Bhargav' , 'taito' : 'lukeminen' , 'palkinto' : 12 000 }

]

# luo taitojen tietokehys yllä olevista tiedoista

skill_df = linuxhint_spark_app.createDataFrame(skills)

# Muunna skill_df pandas DataFrameksi

pandas_skills_df= skill_df.toPandas()

# Lisää tämä DataFrame pandas_skills1.csv-tiedostoon

pandas_skills_df.to_csv( 'pandas_skills1.csv' , mode= 'a' , otsikko =väärä)

CSV-tulostus:

Näemme, että CSV-tiedostoon on lisätty uusi rivi.

Esimerkki 3: Sarakkeet-parametrilla

Otetaan sama DataFrame ja muunnetaan se CSV:ksi kahdella sarakkeella: 'person' ja 'prize'.

tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

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

# taitotiedot, joissa on 3 riviä ja 4 saraketta

taidot =[{ 'id' : 123 , 'henkilö' : 'Hunaja' , 'taito' : 'maalaus' , 'palkinto' : 25 000 },

{ 'id' : 112 , 'henkilö' : 'Mouni' , 'taito' : 'tanssi' , 'palkinto' : 2000 },

{ 'id' : 153 , 'henkilö' : 'Tulasi' , 'taito' : 'lukeminen' , 'palkinto' : 1200 }

]

# luo taitojen tietokehys yllä olevista tiedoista

skill_df = linuxhint_spark_app.createDataFrame(skills)

# Muunna skill_df pandas DataFrameksi

pandas_skills_df= skill_df.toPandas()

# Muunna tämä DataFrame csv:ksi tietyillä sarakkeilla

pandas_skills_df.to_csv( 'pandas_skills2.csv' , sarakkeet=[ 'henkilö' , 'palkinto' ])

CSV-tulostus:

Näemme, että CSV-tiedostossa on vain sarakkeet 'henkilö' ja 'palkinto'.

PySpark Pandas DataFrame CSV:ksi To_Csv()-menetelmällä

To_csv() on Pandas-moduulissa käytettävissä oleva menetelmä, joka muuntaa Pandas DataFramen CSV:ksi. Ensin meidän on muutettava PySpark DataFrame Pandas DataFrameksi. ToPandas()-menetelmää käytetään tähän. Katsotaanpa to_csv():n syntaksia ja sen parametreja:

Syntaksi:

pyspark_pandas_dataframe_obj.to_csv(polku/ 'tiedoston_nimi.csv' , otsikko ,indeksi,sarakkeet,...)
  1. Meidän on määritettävä CSV-tiedoston tiedostonimi. Jos haluat tallentaa ladatun CSV-tiedoston tiettyyn paikkaan tietokoneellasi, voit myös määrittää polun tiedostonimen kanssa.
  2. Sarakkeet sisällytetään, jos otsikon arvo on 'True'. Jos et tarvitse sarakkeita, aseta otsikoksi 'False'.
  3. Indeksit määritetään, jos indeksin arvo on 'True'. Jos et tarvitse indeksejä, aseta indeksiksi 'False'.
  4. Sarakkeet-parametri ottaa sarakkeiden nimien luettelon, jossa voimme määrittää, mitkä tietyt sarakkeet puretaan CSV-tiedostoon.

Esimerkki 1: Sarakkeet-parametrilla

Luo PySpark Pandas DataFrame, jossa on 3 saraketta ja muunna se CSV-muotoon käyttämällä to_csv() -saraketta 'person'- ja 'prize'-sarakkeilla.

Pyspark tuontipandoista

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'henkilö' :[ 'Hunaja' , 'Mouni' , 'hän itse' , 'radha' ], 'palkinto' :[ 1 , 2 , 3 , 4 ]})

print(pyspark_pandas_dataframe)

# Muunna tämä DataFrame csv:ksi tietyillä sarakkeilla

pyspark_pandas_dataframe.to_csv( 'pyspark_pandas1' , sarakkeet=[ 'henkilö' , 'palkinto' ])

Lähtö:

Voimme nähdä, että PySpark Pandas DataFrame muunnetaan CSV:ksi kahdella osiolla. Kukin osio sisältää 2 tietuetta. Lisäksi CSV:n sarakkeet ovat vain 'henkilö' ja 'palkinto'.

Osiotiedosto 1:

Osiotiedosto 2:

Esimerkki 2: Otsikkoparametrilla

Käytä edellistä DataFrame-kehystä ja määritä otsikkoparametri asettamalla se arvoon 'True'.

Pyspark tuontipandoista

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'henkilö' :[ 'Hunaja' , 'Mouni' , 'hän itse' , 'radha' ], 'palkinto' :[ 1 , 2 , 3 , 4 ]})

# Muunna tämä DataFrame csv:ksi otsikolla.

pyspark_pandas_dataframe.to_csv( 'pyspark_pandas2' , otsikko = Totta)

CSV-tulostus:

Voimme nähdä, että PySpark Pandas DataFrame muunnetaan CSV:ksi kahdella osiolla. Kukin osio sisältää 2 tietuetta sarakkeiden nimillä.

Osiotiedosto 1:

Osiotiedosto 2:

PySpark Pandas DataFrame CSV:ksi muuntamalla NumPy Arrayksi

Meillä on mahdollisuus muuntaa PySpark Pandas DataFrame CSV:ksi muuntamalla Numpy-taulukkoon. To_numpy() on PySpark Pandas -moduulissa käytettävissä oleva menetelmä, joka muuntaa PySpark Pandas DataFramen NumPy-taulukoksi.

Syntaksi:

pyspark_pandas_dataframe_obj.to_numpy()

Se ei ota mitään parametreja.

Tofile()-menetelmän käyttäminen

NumPy-taulukoksi muuntamisen jälkeen voimme käyttää tofile()-menetelmää NumPyn muuntamiseen CSV:ksi. Täällä se tallentaa jokaisen tietueen uuteen soluun sarakkeittain CSV-tiedostossa.

Syntaksi:

array_obj.to_numpy(tiedostonimi/polku,sep=' ')

Se ottaa CSV-tiedoston tiedostonimen tai polun ja erottimen.

Esimerkki:

Luo PySpark Pandas DataFrame, jossa on 3 saraketta ja 4 tietuetta, ja muunna se CSV:ksi muuntamalla se ensin NumPy-taulukoksi.

Pyspark tuontipandoista

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'henkilö' :[ 'Hunaja' , 'Mouni' , 'hän itse' , 'radha' ], 'palkinto' :[ 1 , 2 , 3 , 4 ]})

# Muunna yllä oleva DataFrame numpy-taulukkoon

muunnettu = pyspark_pandas_dataframe.to_numpy()

tulostaa (muunnettu)

# Käyttämällä tofile()

converted.tofile( 'converted1.csv' , syys = ',' )

Lähtö:

[[ 90 'Hunaja' 1 ]

[ 78 'Mouni' 2 ]

[ 90 'hän itse' 3 ]

[ 57 'radha' 4 ]]

Näemme, että PySpark Pandas DataFrame muunnetaan NumPy-taulukoksi (12 arvoa). Jos näet CSV-tiedot, se tallentaa jokaisen solun arvon uuteen sarakkeeseen.

PySpark DataFrame CSV:ksi Write.Csv()-menetelmällä

Write.csv()-menetelmä ottaa tiedostonimen/polun, johon meidän on tallennettava CSV-tiedosto parametrina.

Syntaksi:

dataframe_object.coalesce( 1 ).write.csv( 'Tiedoston nimi' )

Itse asiassa CSV tallennetaan osioksi (useampi kuin yksi). Päästäksemme eroon tästä yhdistämme kaikki osioidut CSV-tiedostot yhdeksi. Tässä skenaariossa käytämme coalesce()-funktiota. Nyt voimme nähdä vain yhden CSV-tiedoston, jossa on kaikki PySpark DataFramen rivit.

Esimerkki:

Harkitse PySpark DataFramea, jossa on 4 tietuetta ja 4 saraketta. Kirjoita tämä DataFrame CSV-tiedostoon nimellä 'market_details'.

tuonti pyspark

pyspark.sql-tiedostosta tuo SparkSession

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

# markkinatiedot 4 rivillä ja 4 sarakkeella

markkinat =[{ 'm_id' : 'mz-001' , 'm_name' : 'ABC' , 'm_city' : 'delhi' , 'm_state' : 'delhi' },

{ 'm_id' : 'mz-002' , 'm_name' : 'XYZ' , 'm_city' : 'patna' , 'm_state' : 'onnea' },

{ 'm_id' : 'mz-003' , 'm_name' : 'PQR' , 'm_city' : 'florida' , 'm_state' : 'yksi' },

{ 'm_id' : 'mz-004' , 'm_name' : 'ABC' , 'm_city' : 'delhi' , 'm_state' : 'onnea' }

]



# luo markkinatietokehys yllä olevista tiedoista

market_df = linuxhint_spark_app.createDataFrame(market)

# Todelliset markkinatiedot

market_df.show()

#kirjoita.csv()

market_df.coalesce( 1 ).write.csv( 'market_details' )

Lähtö:

Tarkistataanko tiedosto:

Avaa viimeinen tiedosto nähdäksesi tietueet.

Johtopäätös

Opimme neljä erilaista skenaariota, jotka muuntavat PySpark DataFramen CSV:ksi esimerkkien avulla eri parametreja harkitsemalla. Kun työskentelet PySpark DataFramen kanssa, sinulla on kaksi vaihtoehtoa muuntaa tämä DataFrame CSV-muotoon: yksi tapa on käyttää write()-menetelmää ja toinen käyttää to_csv()-menetelmää muuttamalla Pandas DataFrameksi. Jos työskentelet PySpark Pandas DataFramen kanssa, voit myös käyttää to_csv()- ja tofile()-tiedostoja muuntamalla NumPy-taulukkoon.