Sisällön aihe:
- PySpark DataFrame CSV:ksi muuntamalla Pandas DataFrameksi
- PySpark Pandas DataFrame CSV:ksi To_Csv()-menetelmällä
- PySpark Pandas DataFrame CSV:ksi muuntamalla NumPy Arrayksi
- PySpark DataFrame CSV:ksi Write.Csv()-menetelmällä
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...)
- 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.
- Sarakkeet sisällytetään, jos otsikon arvo on 'True'. Jos et tarvitse sarakkeita, aseta otsikoksi 'False'.
- Indeksit määritetään, jos indeksin arvo on 'True'. Jos et tarvitse indeksejä, aseta indeksiksi 'False'.
- Sarakkeet-parametri ottaa luettelon sarakkeiden nimistä, joissa voimme määrittää, mitkä tietyt sarakkeet puretaan CSV-tiedostoon.
- 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 pysparkpyspark.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 pysparkpyspark.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,...)- 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.
- Sarakkeet sisällytetään, jos otsikon arvo on 'True'. Jos et tarvitse sarakkeita, aseta otsikoksi 'False'.
- Indeksit määritetään, jos indeksin arvo on 'True'. Jos et tarvitse indeksejä, aseta indeksiksi 'False'.
- 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 tuontipandoistapyspark_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 tuontipandoistapyspark_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 tuontipandoistapyspark_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 pysparkpyspark.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.