PySpark DataFrameని CSVకి మారుస్తోంది

Pyspark Dataframeni Csvki Marustondi



PySpark DataFrameని CSVకి మార్చే నాలుగు విభిన్న దృశ్యాలను చూద్దాం. నేరుగా, మేము PySpark DataFrameని CSVకి మార్చడానికి write.csv() పద్ధతిని ఉపయోగిస్తాము. to_csv() ఫంక్షన్‌ని ఉపయోగించి, మేము PySpark Pandas DataFrameని CSVకి మారుస్తాము. ఇది NumPy శ్రేణికి మార్చడం ద్వారా కూడా సాధ్యమవుతుంది.

విషయాల అంశం:

మీరు PySpark DataFrame మరియు మాడ్యూల్ ఇన్‌స్టాలేషన్ గురించి తెలుసుకోవాలనుకుంటే, దీని ద్వారా వెళ్ళండి వ్యాసం .







PySpark DataFrameని CSVకి పాండాస్ డేటాఫ్రేమ్‌గా మార్చడం ద్వారా

to_csv() అనేది పాండాస్ మాడ్యూల్‌లో అందుబాటులో ఉన్న ఒక పద్ధతి, ఇది పాండాస్ డేటాఫ్రేమ్‌ను CSVగా మారుస్తుంది. ముందుగా, మనం మన PySpark DataFrameని Pandas DataFrameకి మార్చాలి. అలా చేయడానికి toPandas() పద్ధతి ఉపయోగించబడుతుంది. to_csv() యొక్క సింటాక్స్ దాని పారామితులతో పాటు చూద్దాం.



సింటాక్స్:



pandas_dataframe_obj.to_csv(మార్గం/ 'file_name.csv' , శీర్షిక ,సూచిక, నిలువు వరుసలు, మోడ్...)
  1. మేము CSV ఫైల్ యొక్క ఫైల్ పేరును పేర్కొనాలి. మీరు డౌన్‌లోడ్ చేసిన CSVని మీ PCలోని నిర్దిష్ట ప్రదేశంలో నిల్వ చేయాలనుకుంటే, మీరు ఫైల్ పేరుతో పాటు మార్గాన్ని కూడా పేర్కొనవచ్చు.
  2. హెడర్ 'నిజం'కి సెట్ చేయబడితే నిలువు వరుసలు చేర్చబడతాయి. మీకు నిలువు వరుసలు అవసరం లేకపోతే, హెడర్‌ను 'తప్పు'కి సెట్ చేయండి.
  3. ఇండెక్స్ 'ట్రూ'కి సెట్ చేయబడితే సూచికలు పేర్కొనబడతాయి. మీకు సూచికలు అవసరం లేకపోతే, సూచికను 'తప్పు'కి సెట్ చేయండి.
  4. నిలువు వరుసల పరామితి కాలమ్ పేర్ల జాబితాను తీసుకుంటుంది, దీనిలో CSV ఫైల్‌కు ఏ నిర్దిష్ట నిలువు వరుసలు సంగ్రహించబడతాయో మనం పేర్కొనవచ్చు.
  5. మేము మోడ్ పరామితిని ఉపయోగించి CSVకి రికార్డ్‌లను జోడించగలుగుతున్నాము. అనుబంధం - దీన్ని చేయడానికి “a” ఉపయోగించబడుతుంది.

ఉదాహరణ 1: హెడర్ మరియు ఇండెక్స్ పారామితులతో

3 అడ్డు వరుసలు మరియు 4 నిలువు వరుసలతో “skills_df” PySpark DataFrameని సృష్టించండి. ఈ డేటాఫ్రేమ్‌ని ముందుగా పాండాస్ డేటాఫ్రేమ్‌గా మార్చడం ద్వారా CSVకి మార్చండి.





పైస్పార్క్ దిగుమతి

pyspark.sql దిగుమతి SparkSession నుండి

linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()

3 అడ్డు వరుసలు మరియు 4 నిలువు వరుసలతో # నైపుణ్యాల డేటా

నైపుణ్యాలు =[{ 'id' : 123 , 'వ్యక్తి' : 'తేనె' , 'నైపుణ్యం' : 'పెయింటింగ్' , 'బహుమతి' : 25000 },

{ 'id' : 112 , 'వ్యక్తి' : 'మౌని' , 'నైపుణ్యం' : 'నృత్యం' , 'బహుమతి' : 2000 },

{ 'id' : 153 , 'వ్యక్తి' : 'తులసి' , 'నైపుణ్యం' : 'పఠనం' , 'బహుమతి' : 1200 }

]

# పై డేటా నుండి నైపుణ్యాల డేటాఫ్రేమ్‌ను సృష్టించండి

skills_df = linuxhint_spark_app.createDataFrame(నైపుణ్యాలు)

skills_df.show()

# స్కిల్స్_డిఎఫ్‌ని పాండాస్ డేటాఫ్రేమ్‌గా మార్చండి

pandas_skills_df= skills_df.toPandas()

ప్రింట్ (pandas_skills_df)

# ఈ డేటాఫ్రేమ్‌ను హెడర్ మరియు ఇండెక్స్‌తో csvకి మార్చండి

pandas_skills_df.to_csv( 'pandas_skills1.csv' , శీర్షిక =నిజం, సూచిక=నిజం)

అవుట్‌పుట్:



PySpark DataFrame పాండాస్ డేటాఫ్రేమ్‌గా మార్చబడిందని మనం చూడవచ్చు. నిలువు వరుస పేర్లు మరియు సూచికలతో ఇది CSVకి మార్చబడిందో లేదో చూద్దాం:

ఉదాహరణ 2: డేటాను CSVకి జోడించు

1 రికార్డ్‌తో మరో PySpark DataFrameని సృష్టించండి మరియు దీన్ని మా మొదటి ఉదాహరణలో భాగంగా సృష్టించిన CSVకి జోడించండి. మేము మోడ్ పరామితితో పాటు హెడర్‌ను 'తప్పు'కి సెట్ చేయాలని నిర్ధారించుకోండి. లేకపోతే, నిలువు వరుస పేర్లు కూడా వరుసగా జోడించబడతాయి.

పైస్పార్క్ దిగుమతి

pyspark.sql దిగుమతి SparkSession నుండి

linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()

నైపుణ్యాలు =[{ 'id' : 90 , 'వ్యక్తి' : 'భార్గవ్' , 'నైపుణ్యం' : 'పఠనం' , 'బహుమతి' : 12000 }

]

# పై డేటా నుండి నైపుణ్యాల డేటాఫ్రేమ్‌ను సృష్టించండి

skills_df = linuxhint_spark_app.createDataFrame(నైపుణ్యాలు)

# స్కిల్స్_డిఎఫ్‌ని పాండాస్ డేటాఫ్రేమ్‌గా మార్చండి

pandas_skills_df= skills_df.toPandas()

# ఈ డేటాఫ్రేమ్‌ని pandas_skills1.csv ఫైల్‌కి జోడించండి

pandas_skills_df.to_csv( 'pandas_skills1.csv' , మోడ్= 'a' , శీర్షిక = తప్పు)

CSV అవుట్‌పుట్:

CSV ఫైల్‌కి కొత్త అడ్డు వరుస జోడించబడిందని మనం చూడవచ్చు.

ఉదాహరణ 3: నిలువు పరామితితో

అదే డేటాఫ్రేమ్‌ని కలిగి ఉండి, దానిని 'వ్యక్తి' మరియు 'బహుమతి' అనే రెండు నిలువు వరుసలతో CSVగా మారుద్దాం.

పైస్పార్క్ దిగుమతి

pyspark.sql దిగుమతి SparkSession నుండి

linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()

3 అడ్డు వరుసలు మరియు 4 నిలువు వరుసలతో # నైపుణ్యాల డేటా

నైపుణ్యాలు =[{ 'id' : 123 , 'వ్యక్తి' : 'తేనె' , 'నైపుణ్యం' : 'పెయింటింగ్' , 'బహుమతి' : 25000 },

{ 'id' : 112 , 'వ్యక్తి' : 'మౌని' , 'నైపుణ్యం' : 'నృత్యం' , 'బహుమతి' : 2000 },

{ 'id' : 153 , 'వ్యక్తి' : 'తులసి' , 'నైపుణ్యం' : 'పఠనం' , 'బహుమతి' : 1200 }

]

# పై డేటా నుండి నైపుణ్యాల డేటాఫ్రేమ్‌ను సృష్టించండి

skills_df = linuxhint_spark_app.createDataFrame(నైపుణ్యాలు)

# స్కిల్స్_డిఎఫ్‌ని పాండాస్ డేటాఫ్రేమ్‌గా మార్చండి

pandas_skills_df= skills_df.toPandas()

# ఈ డేటాఫ్రేమ్‌ని నిర్దిష్ట నిలువు వరుసలతో csvకి మార్చండి

pandas_skills_df.to_csv( 'pandas_skills2.csv' , నిలువు వరుసలు=[ 'వ్యక్తి' , 'బహుమతి' ])

CSV అవుట్‌పుట్:

CSV ఫైల్‌లో “వ్యక్తి” మరియు “బహుమతి” నిలువు వరుసలు మాత్రమే ఉన్నాయని మనం చూడవచ్చు.

To_Csv() పద్ధతిని ఉపయోగించి PySpark Pandas DataFrame to CSV

to_csv() అనేది పాండాస్ మాడ్యూల్‌లో అందుబాటులో ఉన్న ఒక పద్ధతి, ఇది పాండాస్ డేటాఫ్రేమ్‌ను CSVగా మారుస్తుంది. ముందుగా, మనం మన PySpark DataFrameని Pandas DataFrameకి మార్చాలి. అలా చేయడానికి toPandas() పద్ధతి ఉపయోగించబడుతుంది. దాని పారామితులతో పాటు to_csv() యొక్క వాక్యనిర్మాణాన్ని చూద్దాం:

సింటాక్స్:

pyspark_pandas_dataframe_obj.to_csv(మార్గం/ 'file_name.csv' , శీర్షిక ,సూచిక,నిలువు వరుసలు,...)
  1. మేము CSV ఫైల్ యొక్క ఫైల్ పేరును పేర్కొనాలి. మీరు డౌన్‌లోడ్ చేసిన CSVని మీ PCలోని నిర్దిష్ట ప్రదేశంలో నిల్వ చేయాలనుకుంటే, మీరు ఫైల్ పేరుతో పాటు మార్గాన్ని కూడా పేర్కొనవచ్చు.
  2. హెడర్ 'నిజం'కి సెట్ చేయబడితే నిలువు వరుసలు చేర్చబడతాయి. మీకు నిలువు వరుసలు అవసరం లేకపోతే, హెడర్‌ను 'తప్పు'కి సెట్ చేయండి.
  3. ఇండెక్స్ 'ట్రూ'కి సెట్ చేయబడితే సూచికలు పేర్కొనబడతాయి. మీకు సూచికలు అవసరం లేకపోతే, సూచికను 'తప్పు'కి సెట్ చేయండి.
  4. నిలువు వరుసల పరామితి కాలమ్ పేర్ల జాబితాను తీసుకుంటుంది, దీనిలో CSV ఫైల్‌కు ఏ నిర్దిష్ట నిలువు వరుసలు సంగ్రహించబడతాయో పేర్కొనవచ్చు.

ఉదాహరణ 1: నిలువు పరామితితో

3 నిలువు వరుసలతో PySpark Pandas DataFrameని సృష్టించండి మరియు దానిని 'వ్యక్తి' మరియు 'ప్రైజ్' నిలువు వరుసలతో to_csv() ఉపయోగించి CSVకి మార్చండి.

పిస్పార్క్ దిగుమతి పాండాల నుండి

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'వ్యక్తి' :[ 'తేనె' , 'మౌని' , 'తాను' , 'రాధ' ], 'బహుమతి' :[ 1 , 2 , 3 , 4 ]})

ప్రింట్(pyspark_pandas_dataframe)

# ఈ డేటాఫ్రేమ్‌ని నిర్దిష్ట నిలువు వరుసలతో csvకి మార్చండి

pyspark_pandas_dataframe.to_csv( 'pyspark_pandas1' , నిలువు వరుసలు=[ 'వ్యక్తి' , 'బహుమతి' ])

అవుట్‌పుట్:

PySpark Pandas DataFrame రెండు విభజనలతో CSVకి మార్చబడిందని మనం చూడవచ్చు. ప్రతి విభజన 2 రికార్డులను కలిగి ఉంది. అలాగే, CSVలోని నిలువు వరుసలు “వ్యక్తి” మరియు “బహుమతి” మాత్రమే.

విభజన ఫైల్ 1:

విభజన ఫైల్ 2:

ఉదాహరణ 2: హెడర్ పారామీటర్‌తో

మునుపటి డేటాఫ్రేమ్‌ని ఉపయోగించండి మరియు హెడర్ పరామితిని 'ట్రూ'కి సెట్ చేయడం ద్వారా పేర్కొనండి.

పిస్పార్క్ దిగుమతి పాండాల నుండి

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'వ్యక్తి' :[ 'తేనె' , 'మౌని' , 'తాను' , 'రాధ' ], 'బహుమతి' :[ 1 , 2 , 3 , 4 ]})

# ఈ డేటాఫ్రేమ్‌ని హెడర్‌తో csvకి మార్చండి.

pyspark_pandas_dataframe.to_csv( 'pyspark_pandas2' , శీర్షిక = నిజం)

CSV అవుట్‌పుట్:

PySpark Pandas DataFrame రెండు విభజనలతో CSVకి మార్చబడిందని మనం చూడవచ్చు. ప్రతి విభజన నిలువు వరుస పేర్లతో 2 రికార్డులను కలిగి ఉంటుంది.

విభజన ఫైల్ 1:

విభజన ఫైల్ 2:

PySpark Pandas DataFrameని CSVకి NumPy అర్రేకి మార్చడం ద్వారా

PySpark Pandas DataFrameని Numpy శ్రేణిలోకి మార్చడం ద్వారా CSVకి మార్చడానికి మాకు ఒక ఎంపిక ఉంది. to_numpy() అనేది PySpark Pandas మాడ్యూల్‌లో అందుబాటులో ఉన్న ఒక పద్ధతి, ఇది PySpark Pandas DataFrameని NumPy శ్రేణికి మారుస్తుంది.

సింటాక్స్:

pyspark_pandas_dataframe_obj.to_numpy()

ఇది ఏ పారామితులను తీసుకోదు.

Tofile() పద్ధతిని ఉపయోగించడం

NumPy శ్రేణికి మార్చిన తర్వాత, మేము NumPyని CSVకి మార్చడానికి tofile() పద్ధతిని ఉపయోగించవచ్చు. ఇక్కడ, ఇది ప్రతి రికార్డ్‌ను CSV ఫైల్‌లో కొత్త సెల్ స్తంభాల వారీగా నిల్వ చేస్తుంది.

సింటాక్స్:

array_obj.to_numpy(ఫైల్ పేరు/మార్గం, సెప్టెంబర్=' ')

ఇది ఫైల్ పేరు లేదా CSV మరియు సెపరేటర్ యొక్క మార్గాన్ని తీసుకుంటుంది.

ఉదాహరణ:

PySpark Pandas DataFrameని 3 నిలువు వరుసలు మరియు 4 రికార్డ్‌లతో సృష్టించండి మరియు ముందుగా దానిని NumPy శ్రేణిగా మార్చడం ద్వారా CSVకి మార్చండి.

పిస్పార్క్ దిగుమతి పాండాల నుండి

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 ], 'వ్యక్తి' :[ 'తేనె' , 'మౌని' , 'తాను' , 'రాధ' ], 'బహుమతి' :[ 1 , 2 , 3 , 4 ]})

# పై డేటా ఫ్రేమ్‌ని నంపీ అర్రేకి మార్చండి

converted = pyspark_pandas_dataframe.to_numpy()

ప్రింట్ (మార్పిడి చేయబడింది)

# టోఫైల్ ()ని ఉపయోగించడం

converted.tofile( 'converted1.csv' , సెప్టెంబర్ = ',' )

అవుట్‌పుట్:

[[ 90 'తేనె' 1 ]

[ 78 'మౌని' 2 ]

[ 90 'తాను' 3 ]

[ 57 'రాధ' 4 ]]

PySpark Pandas DataFrame ఒక NumPy శ్రేణికి (12 విలువలు) మార్చబడిందని మనం చూడవచ్చు. మీరు CSV డేటాను చూడగలిగితే, అది ప్రతి సెల్ విలువను కొత్త నిలువు వరుసలో నిల్వ చేస్తుంది.

Write.Csv() పద్ధతిని ఉపయోగించి PySpark DataFrame నుండి CSVకి

write.csv() పద్ధతి ఫైల్ పేరు/మార్గాన్ని తీసుకుంటుంది, ఇక్కడ మనం CSV ఫైల్‌ను పారామీటర్‌గా సేవ్ చేయాలి.

సింటాక్స్:

dataframe_object.coalesce( 1 ).write.csv( 'ఫైల్_పేరు' )

వాస్తవానికి, CSV విభజనలుగా సేవ్ చేయబడింది (ఒకటి కంటే ఎక్కువ). దీన్ని వదిలించుకోవడానికి, మేము విభజించబడిన అన్ని CSV ఫైల్‌లను ఒకటిగా విలీనం చేస్తాము. ఈ దృష్టాంతంలో, మేము coalesce() ఫంక్షన్‌ని ఉపయోగిస్తాము. ఇప్పుడు, మనం PySpark DataFrame నుండి అన్ని అడ్డు వరుసలతో ఒక CSV ఫైల్‌ను మాత్రమే చూడగలము.

ఉదాహరణ:

4 నిలువు వరుసలను కలిగి ఉన్న 4 రికార్డులతో PySpark DataFrameని పరిగణించండి. 'market_details' అనే ఫైల్‌తో ఈ డేటాఫ్రేమ్‌ని CSVకి వ్రాయండి.

పైస్పార్క్ దిగుమతి

pyspark.sql దిగుమతి SparkSession నుండి

linuxhint_spark_app = SparkSession.builder.appName( 'Linux సూచన' ).getOrCreate()

4 అడ్డు వరుసలు మరియు 4 నిలువు వరుసలతో # మార్కెట్ డేటా

మార్కెట్ =[{ 'మధ్య' : 'mz-001' , 'm_name' : 'ABC' , 'm_city' : 'ఢిల్లీ' , 'm_state' : 'ఢిల్లీ' },

{ 'మధ్య' : 'mz-002' , 'm_name' : 'XYZ' , 'm_city' : 'పాట్నా' , 'm_state' : 'లక్నో' },

{ 'మధ్య' : 'mz-003' , 'm_name' : 'PQR' , 'm_city' : 'ఫ్లోరిడా' , 'm_state' : 'ఒకటి' },

{ 'మధ్య' : 'mz-004' , 'm_name' : 'ABC' , 'm_city' : 'ఢిల్లీ' , 'm_state' : 'లక్నో' }

]



# పై డేటా నుండి మార్కెట్ డేటాఫ్రేమ్‌ను సృష్టించండి

market_df = linuxhint_spark_app.createDataFrame(మార్కెట్)

# వాస్తవ మార్కెట్ డేటా

market_df.show()

# write.csv()

market_df.coalesce( 1 ).write.csv( 'మార్కెట్_వివరాలు' )

అవుట్‌పుట్:

ఫైల్ కోసం తనిఖీ చేద్దాం:

రికార్డులను చూడటానికి చివరి ఫైల్‌ను తెరవండి.

ముగింపు

వేర్వేరు పారామితులను పరిగణనలోకి తీసుకోవడం ద్వారా ఉదాహరణలతో PySpark DataFrameని CSVకి మార్చే నాలుగు విభిన్న దృశ్యాలను మేము నేర్చుకున్నాము. మీరు PySpark DataFrameతో పని చేస్తున్నప్పుడు, ఈ డేటాఫ్రేమ్‌ను CSVకి మార్చడానికి మీకు రెండు ఎంపికలు ఉన్నాయి: ఒక మార్గం రైట్() పద్ధతిని ఉపయోగిస్తుంది మరియు మరొక మార్గం పాండాస్ డేటాఫ్రేమ్‌కి మార్చడం ద్వారా to_csv() పద్ధతిని ఉపయోగిస్తుంది. మీరు PySpark Pandas DataFrameతో పని చేస్తున్నట్లయితే, మీరు NumPy శ్రేణికి మార్చడం ద్వారా to_csv() మరియు tofile()లను కూడా ఉపయోగించుకోవచ్చు.