Paksa ng Nilalaman:
- PySpark DataFrame sa CSV sa pamamagitan ng Pag-convert sa Pandas DataFrame
- PySpark Pandas DataFrame to CSV Gamit ang To_Csv() Method
- PySpark Pandas DataFrame sa CSV sa pamamagitan ng Pag-convert sa NumPy Array
- PySpark DataFrame sa CSV Gamit ang Write.Csv() Method
Kung gusto mong malaman ang tungkol sa PySpark DataFrame at pag-install ng module, dumaan dito artikulo .
PySpark DataFrame sa CSV sa pamamagitan ng Pag-convert sa Pandas DataFrame
Ang to_csv() ay isang paraan na available sa module ng Pandas na nagko-convert sa Pandas DataFrame sa CSV. Una, kailangan naming i-convert ang aming PySpark DataFrame sa Pandas DataFrame. Ang toPandas() method ay ginagamit para gawin iyon. Tingnan natin ang syntax ng to_csv() kasama ang mga parameter nito.
Syntax:
pandas_dataframe_obj.to_csv(path/ 'file_name.csv' , header ,index, mga column, mode...)
- Kailangan naming tukuyin ang pangalan ng file ng CSV file. Kung gusto mong iimbak ang na-download na CSV sa isang partikular na lokasyon sa iyong PC, maaari mo ring tukuyin ang path kasama ang pangalan ng file.
- Kasama ang mga column kung nakatakda ang header sa “True”. Kung hindi mo kailangan ng mga column, itakda ang header sa 'False'.
- Tinukoy ang mga indeks kung nakatakda ang index sa “True”. Kung hindi mo kailangan ng mga indeks, itakda ang index sa 'False'.
- Ang parameter ng Columns ay kumukuha ng isang listahan ng mga pangalan ng column kung saan matutukoy namin kung aling mga partikular na column ang kinukuha sa CSV file.
- Nagagawa naming idagdag ang mga tala sa CSV gamit ang parameter ng mode. Append – “a” ang ginagamit para gawin ito.
Halimbawa 1: Gamit ang Header at Index Parameter
Gawin ang 'skills_df' PySpark DataFrame na may 3 row at 4 na column. I-convert ang DataFrame na ito sa CSV sa pamamagitan ng unang pag-convert nito sa Pandas DataFrame.
import pyspark
mula sa pyspark.sql import SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
# data ng kasanayan na may 3 row at 4 na column
kasanayan =[{ 'id' : 123 , 'tao' : 'Honey' , 'kasanayan' : 'pagpipinta' , 'premyo' : 25000 },
{ 'id' : 112 , 'tao' : 'Mouni' , 'kasanayan' : 'sayaw' , 'premyo' : 2000 },
{ 'id' : 153 , 'tao' : 'Tulasi' , 'kasanayan' : 'pagbabasa' , 'premyo' : 1200 }
]
# lumikha ng dataframe ng mga kasanayan mula sa data sa itaas
skills_df = linuxhint_spark_app.createDataFrame(skills)
skills_df.show()
# I-convert ang skills_df sa pandas DataFrame
pandas_skills_df= skills_df.toPandas()
print(pandas_skills_df)
# I-convert ang DataFrame na ito sa csv na may header at index
pandas_skills_df.to_csv( 'pandas_skills1.csv' , header =Totoo, index=Totoo)
Output:
Makikita natin na ang PySpark DataFrame ay na-convert sa Pandas DataFrame. Tingnan natin kung ito ay na-convert sa CSV na may mga pangalan ng column at mga indeks:
Halimbawa 2: Idagdag ang Data sa CSV
Gumawa ng isa pang PySpark DataFrame na may 1 record at idagdag ito sa CSV na ginawa bilang bahagi ng aming unang halimbawa. Tiyaking kailangan nating itakda ang header sa 'False' kasama ang parameter ng mode. Kung hindi, ang mga pangalan ng column ay idinadagdag din bilang isang row.
import pysparkmula sa pyspark.sql import SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
kasanayan =[{ 'id' : 90 , 'tao' : 'Bhargav' , 'kasanayan' : 'pagbabasa' , 'premyo' : 12000 }
]
# lumikha ng dataframe ng mga kasanayan mula sa data sa itaas
skills_df = linuxhint_spark_app.createDataFrame(skills)
# I-convert ang skills_df sa pandas DataFrame
pandas_skills_df= skills_df.toPandas()
# Idagdag ang DataFrame na ito sa pandas_skills1.csv file
pandas_skills_df.to_csv( 'pandas_skills1.csv' , mode= 'a' , header =Mali)
CSV Output:
Makikita natin na may idinagdag na bagong row sa CSV file.
Halimbawa 3: Gamit ang Mga Column Parameter
Magkaroon tayo ng parehong DataFrame at i-convert ito sa CSV na may dalawang column: 'tao' at 'premyo.'
import pysparkmula sa pyspark.sql import SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
# data ng kasanayan na may 3 row at 4 na column
kasanayan =[{ 'id' : 123 , 'tao' : 'Honey' , 'kasanayan' : 'pagpipinta' , 'premyo' : 25000 },
{ 'id' : 112 , 'tao' : 'Mouni' , 'kasanayan' : 'sayaw' , 'premyo' : 2000 },
{ 'id' : 153 , 'tao' : 'Tulasi' , 'kasanayan' : 'pagbabasa' , 'premyo' : 1200 }
]
# lumikha ng dataframe ng mga kasanayan mula sa data sa itaas
skills_df = linuxhint_spark_app.createDataFrame(skills)
# I-convert ang skills_df sa pandas DataFrame
pandas_skills_df= skills_df.toPandas()
# I-convert ang DataFrame na ito sa csv na may mga partikular na column
pandas_skills_df.to_csv( 'pandas_skills2.csv' , columns=[ 'tao' , 'premyo' ])
CSV Output:
Makikita natin na ang mga column na 'tao' at 'premyo' lang ang umiiral sa CSV file.
PySpark Pandas DataFrame to CSV Gamit ang To_Csv() Method
Ang to_csv() ay isang paraan na available sa module ng Pandas na nagko-convert sa Pandas DataFrame sa CSV. Una, kailangan naming i-convert ang aming PySpark DataFrame sa Pandas DataFrame. Ang toPandas() method ay ginagamit para gawin iyon. Tingnan natin ang syntax ng to_csv() kasama ang mga parameter nito:
Syntax:
pyspark_pandas_dataframe_obj.to_csv(path/ 'file_name.csv' , header ,index, mga column,...)- Kailangan naming tukuyin ang pangalan ng file ng CSV file. Kung gusto mong iimbak ang na-download na CSV sa isang partikular na lokasyon sa iyong PC, maaari mo ring tukuyin ang path kasama ang pangalan ng file.
- Kasama ang mga column kung ang header ay nakatakda sa “True”. Kung hindi mo kailangan ng mga column, itakda ang header sa 'False'.
- Tinukoy ang mga indeks kung nakatakda ang index sa “True”. Kung hindi mo kailangan ng mga indeks, itakda ang index sa 'False'.
- Ang parameter ng column ay kumukuha ng listahan ng mga pangalan ng column kung saan matutukoy namin kung aling mga partikular na column ang i-extract sa CSV file.
Halimbawa 1: Gamit ang Mga Column Parameter
Gumawa ng PySpark Pandas DataFrame na may 3 column at i-convert ito sa CSV gamit ang to_csv() na may mga column na 'tao' at 'premyo'.
mula sa pyspark import pandapyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'tao' :[ 'Honey' , 'Mouni' , 'sarili' , 'radha' ], 'premyo' :[ 1 , 2 , 3 , 4 ]})
print(pyspark_pandas_dataframe)
# I-convert ang DataFrame na ito sa csv na may mga partikular na column
pyspark_pandas_dataframe.to_csv( 'pyspark_pandas1' , columns=[ 'tao' , 'premyo' ])
Output:
Makikita natin na ang PySpark Pandas DataFrame ay na-convert sa CSV na may dalawang partition. Ang bawat partition ay mayroong 2 record. Gayundin, ang mga column sa CSV ay 'tao' at 'premyo' lang.
File ng Partition 1:
File ng Partition 2:
Halimbawa 2: Gamit ang Header Parameter
Gamitin ang nakaraang DataFrame at tukuyin ang parameter ng header sa pamamagitan ng pagtatakda nito sa “True”.
mula sa pyspark import pandapyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'tao' :[ 'Honey' , 'Mouni' , 'sarili' , 'radha' ], 'premyo' :[ 1 , 2 , 3 , 4 ]})
# I-convert ang DataFrame na ito sa csv na may header.
pyspark_pandas_dataframe.to_csv( 'pyspark_pandas2' , header =Totoo)
CSV Output:
Makikita natin na ang PySpark Pandas DataFrame ay na-convert sa CSV na may dalawang partition. Ang bawat partition ay mayroong 2 record na may mga pangalan ng column.
File ng Partition 1:
File ng Partition 2:
PySpark Pandas DataFrame sa CSV sa pamamagitan ng Pag-convert sa NumPy Array
Mayroon kaming opsyon na i-convert ang PySpark Pandas DataFrame sa CSV sa pamamagitan ng pag-convert sa Numpy array. Ang to_numpy() ay isang paraan na available sa PySpark Pandas module na nagko-convert ng PySpark Pandas DataFrame sa NumPy array.
Syntax:
pyspark_pandas_dataframe_obj.to_numpy()Hindi ito kukuha ng anumang mga parameter.
Gamit ang Tofile() Method
Pagkatapos mag-convert sa NumPy array, maaari naming gamitin ang tofile() method para i-convert ang NumPy sa CSV. Dito, iniimbak nito ang bawat tala sa isang bagong cell columnar wise sa CSV file.
Syntax:
array_obj.to_numpy(filename/path,sep=’ ’)Kinukuha nito ang pangalan ng file o path ng isang CSV at isang separator.
Halimbawa:
Lumikha ng PySpark Pandas DataFrame na may 3 column at 4 na record at i-convert ito sa CSV sa pamamagitan ng unang pag-convert nito sa NumPy array.
mula sa pyspark import pandapyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'tao' :[ 'Honey' , 'Mouni' , 'sarili' , 'radha' ], 'premyo' :[ 1 , 2 , 3 , 4 ]})
# I-convert ang DataFrame sa itaas sa numpy array
na-convert = pyspark_pandas_dataframe.to_numpy()
print(na-convert)
# Paggamit ng tofile()
converted.tofile( 'converted1.csv' , sep = ',' )
Output:
[[ 90 'Honey' 1 ][ 78 'Mouni' 2 ]
[ 90 'sarili' 3 ]
[ 57 'radha' 4 ]]
Makikita natin na ang PySpark Pandas DataFrame ay na-convert sa isang NumPy array (12 values). Kung nakikita mo ang data ng CSV, iniimbak nito ang bawat halaga ng cell sa isang bagong column.
PySpark DataFrame sa CSV Gamit ang Write.Csv() Method
Kinukuha ng write.csv() method ang file name/path kung saan kailangan nating i-save ang CSV file bilang parameter.
Syntax:
dataframe_object.coalesce( 1 ).write.csv( 'file_name' )Sa totoo lang, ang CSV ay nai-save bilang mga partisyon (higit sa isa). Upang maalis ito, pinagsama namin ang lahat ng nahati na CSV file sa isa. Sa sitwasyong ito, ginagamit namin ang coalesce() function. Ngayon, isang CSV file lang ang makikita natin kasama ang lahat ng row mula sa PySpark DataFrame.
Halimbawa:
Isaalang-alang ang PySpark DataFrame na may 4 na tala na mayroong 4 na column. Isulat ang DataFrame na ito sa CSV gamit ang file na pinangalanang 'market_details'.
import pysparkmula sa pyspark.sql import SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Linux Hint' ).getOrCreate()
# market data na may 4 na row at 4 na column
merkado =[{ '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' : 'swerte' },
{ 'm_id' : 'mz-003' , 'm_name' : 'PQR' , 'm_city' : 'florida' , 'm_state' : 'isa' },
{ 'm_id' : 'mz-004' , 'm_name' : 'ABC' , 'm_city' : 'delhi' , 'm_state' : 'swerte' }
]
# lumikha ng dataframe ng merkado mula sa data sa itaas
market_df = linuxhint_spark_app.createDataFrame(market)
# Aktwal na data ng merkado
market_df.show()
# write.csv()
market_df.coalesce( 1 ).write.csv( 'market_details' )
Output:
Suriin natin ang file:
Buksan ang huling file upang makita ang mga talaan.
Konklusyon
Natutunan namin ang apat na magkakaibang mga sitwasyon na nagko-convert sa PySpark DataFrame sa CSV na may mga halimbawa sa pamamagitan ng pagsasaalang-alang sa iba't ibang mga parameter. Kapag nagtatrabaho ka sa PySpark DataFrame, mayroon kang dalawang opsyon upang i-convert ang DataFrame na ito sa CSV: ang isang paraan ay ang paggamit ng write() na paraan at ang isa pa ay ang paggamit ng to_csv() na paraan sa pamamagitan ng pag-convert sa Pandas DataFrame. Kung nagtatrabaho ka sa PySpark Pandas DataFrame, maaari mo ring gamitin ang to_csv() at tofile() sa pamamagitan ng pag-convert sa NumPy array.