PySpark Read CSV()

Pyspark Read Csv



CSV தரவிலிருந்து PySpark DataFrame ஐ உருவாக்குவது read.csv() செயல்பாட்டைப் பயன்படுத்தி PySpark இல் சாத்தியமாகும். சில சூழ்நிலைகளில், நீங்கள் PySpark DataFrame இல் வெளிப்புறத் தரவை ஏற்ற விரும்பினால், PySpark JSON, CSV போன்ற பல வடிவங்களை ஆதரிக்கிறது. இந்த டுடோரியலில், CSV தரவைப் படித்து அதை PySpark DataFrame இல் ஏற்றுவது எப்படி என்று பார்ப்போம். மேலும், ஒரே நேரத்தில் பல CSV கோப்புகளை ஒரே டேட்டாஃப்ரேமில் ஏற்றுவது பற்றி எடுத்துக்காட்டுகளுடன் விவாதிப்போம்.

Pyspark.sql.DataFrameReader.csv()

இந்த முறை CSV கோப்பு/களில் இருந்து தரவைப் படித்து அவற்றை PySpark DataFrame இல் சேமிக்கப் பயன்படுகிறது. DataFrame இல் CSV ஐப் படிக்கும்போது இது விருப்பங்களை எடுக்கும். வெவ்வேறு விருப்பங்களை எடுத்துக்காட்டுகளுடன் விரிவாக விவாதிப்போம். ஒன்றுக்கும் மேற்பட்ட CSV கோப்புகளை அனுப்பும் போது, ​​கமா ஆபரேட்டரால் பிரிக்கப்பட்ட பட்டியலில் நீட்டிப்புடன் கோப்பு பெயர்களை அனுப்புவது முக்கியம். நீங்கள் ஒரு CSV கோப்பை மட்டுமே படிக்கிறீர்கள் என்றால், பட்டியலில் கோப்பு பெயரை வழங்க வேண்டிய அவசியமில்லை.

தொடரியல்:







ஒற்றை கோப்பு - spark_app.read.csv(‘file.csv’, விருப்பங்கள் …)

பல கோப்புகள் – spark_app.read.csv ([‘file1.csv’,’file2.csv’,…],விருப்பங்கள்…)



விருப்பங்கள் மற்றும் கோப்பு பெயர்களை பிரிக்கவும் முடியும்.



ஒற்றை கோப்பு – spark_app.read.options(விருப்பங்கள்…).csv(‘file.csv’)





பல கோப்புகள் – spark_app.read.options(விருப்பங்கள்…).csv([‘file1.csv’,’file2.csv’,…])

பின்வரும் உதாரணங்களை செயல்படுத்தும் முன் PySpark நூலகத்தை நிறுவவும்.



pip நிறுவ pyspark

வெற்றிகரமான நிறுவலுக்குப் பிறகு, வெளியீட்டை பின்வருமாறு காணலாம்:

காட்சி 1: CSV கோப்பு தலைப்பைப் படித்தல்

பின்வருவனவற்றில் காட்டப்பட்டுள்ள 5 பதிவுகளுடன் “person_skill.csv” என்ற CSV கோப்பை உருவாக்கி அதை PySpark DataFrame இல் ஏற்றுவோம்:

PySpark DataFrame இல் நெடுவரிசைப் பெயர்களைக் குறிப்பிட தலைப்பு அளவுரு பயன்படுத்தப்படுகிறது. இது ஒரு பூலியன் மதிப்பை எடுக்கும். இது 'உண்மை' எனில், CSV கோப்பில் இருக்கும் உண்மையான நெடுவரிசைப் பெயர்கள் DataFrame இல் குறிப்பிடப்படும், இல்லையெனில், c0, c1, c2... ஆகியவை குறிப்பிடப்பட்டு, உண்மையான நெடுவரிசைப் பெயர்கள் ஒரு வரிசையாக இருக்கும். தலைப்பு அளவுருவை உண்மைக்கு அமைப்பது சிறந்தது.

எடுத்துக்காட்டு 1: தலைப்பு = உண்மை

பைஸ்பார்க் இறக்குமதி

pyspark.sql இலிருந்து SparkSession இறக்குமதி

linuxhint_spark_app = SparkSession.builder.appName( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# csv - person_skill.csvஐ தலைப்புடன் கூடிய நெடுவரிசை லேபிள்களுடன் திறன்களாக ஏற்றவும்

திறன்கள் = linuxhint_spark_app.read.csv( 'person_skill.csv' , தலைப்பு =உண்மை)

# டேட்டா ஃபிரேமைக் காட்டு

skills.show()

வெளியீடு:

விளக்கம்:

குறிப்பிட்ட நெடுவரிசைகள் மற்றும் வரிசைகளுடன் CSV கோப்பிலிருந்து PySpark DataFrame உருவாக்கப்படுவதைக் காணலாம்.

நெடுவரிசைகளைச் சரிபார்க்க பின்வரும் கட்டளையைப் பயன்படுத்தவும்:

திறன்கள்.பத்திகள்

எடுத்துக்காட்டு 2: தலைப்பு = தவறு

பைஸ்பார்க் இறக்குமதி

pyspark.sql இலிருந்து SparkSession இறக்குமதி

linuxhint_spark_app = SparkSession.builder.appName( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# தலைப்பு இல்லாமல் நெடுவரிசை லேபிள்களுடன் கூடிய திறன்களில் - person_skill.csv என பெயரிடப்பட்ட csv ஐ ஏற்றவும்

திறன்கள் = linuxhint_spark_app.read.csv( 'person_skill.csv' , தலைப்பு =பொய்)

# டேட்டா ஃபிரேமைக் காட்டு

skills.show()

வெளியீடு:

விளக்கம்:

PySpark DataFrame ஏற்கனவே உள்ள நெடுவரிசைகள் இல்லாமல் CSV கோப்பிலிருந்து உருவாக்கப்படுவதைக் காணலாம்.

மேலும், ஏற்கனவே உள்ள நெடுவரிசைகள் PySpark DataFrame இல் வரிசைகளாக சேமிக்கப்படும்.

திறன்கள்.பத்திகள்

Read.options.csv() ஐப் பயன்படுத்துதல்

இப்போது, ​​read.options.csv() முறையைப் பயன்படுத்தி CSV கோப்பைப் படிக்கிறோம். இங்கே, நாம் விருப்பங்களில் உள்ள delimiter, header, etc போன்ற விருப்பங்களை வாதங்களாகவும், csv() கோப்புப் பெயராகவும் அனுப்ப வேண்டும். தலைப்பு அளவுருவை 'உண்மை' என அமைப்பதன் மூலம் அனுப்புவோம்.

காட்சி 1:

பைஸ்பார்க் இறக்குமதி

pyspark.sql இலிருந்து SparkSession இறக்குமதி

linuxhint_spark_app = SparkSession.builder.appName( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# read.options.csv() ஐப் பயன்படுத்துதல்

திறன்கள் = linuxhint_spark_app.read. விருப்பங்கள் ( தலைப்பு =உண்மை).csv( 'person_skill.csv' )

# டேட்டா ஃபிரேமைக் காட்டு

skills.show()

வெளியீடு:

காட்சி 2: CSV ஃபைல் டிலிமிட்டரைப் படித்தல்

டிலிமிட்டர் அளவுரு ஒவ்வொரு புலத்தையும் பிரிக்கப் பயன்படும் எழுத்தை எடுக்கும். இது முன்னிருப்பாக காற்புள்ளியை (,) எடுக்கும். முதல் காட்சியில் பயன்படுத்தப்பட்ட அதே CSV கோப்பைப் பயன்படுத்துவோம், மேலும் கமாவை (‘,’) பிரிப்பானாக அனுப்புவோம்.

பைஸ்பார்க் இறக்குமதி

pyspark.sql இலிருந்து SparkSession இறக்குமதி

linuxhint_spark_app = SparkSession.builder.appName( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# தலைப்புடன் டிலிமிட்டருடன் read.options.csv() ஐப் பயன்படுத்துதல்

திறன்கள் = linuxhint_spark_app.read. விருப்பங்கள் ( தலைப்பு = உண்மை, எல்லைப்படுத்தி = ',' ).csv( 'person_skill.csv' )

# டேட்டா ஃபிரேமைக் காட்டு

skills.show()

வெளியீடு:

பல கோப்புகளைப் படித்தல்

இப்போது வரை, நாங்கள் ஒரு CSV கோப்பைப் படித்து வருகிறோம். ஒன்றுக்கு மேற்பட்ட CSV கோப்புகளை எவ்வாறு படிப்பது என்று பார்ப்போம். இந்த சூழ்நிலையில், பல கோப்புகளில் உள்ள வரிசைகள் ஒரு PySpark DataFrame இல் இணைக்கப்படும். நாம் ஒரு பட்டியலில் கோப்பு பெயர்களை முறைக்குள் அனுப்ப வேண்டும்.

உதாரணமாக:

பின்வரும் தரவுகளுடன் “person_skill.csv” மற்றும் “person_skill2.csv” என்ற பின்வரும் CSV கோப்புகளை வைத்திருக்கலாம்:


இந்த இரண்டு CSV கோப்புகளையும் படித்து, ஒரே PySpark DataFrame இல் சேமிக்கவும்.

பைஸ்பார்க் இறக்குமதி

pyspark.sql இலிருந்து SparkSession இறக்குமதி

linuxhint_spark_app = SparkSession.builder.appName( 'லினக்ஸ் குறிப்பு' ).getOrCreate()

# பெயரிடப்பட்ட 2 csv கோப்புகளை - person_skill.csv மற்றும் person_skill2.csv ஆகியவற்றை தலைப்புடன் கூடிய நெடுவரிசை லேபிள்களுடன் திறன்களாக ஏற்றவும்

திறன்கள் = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],செப்= ',' , தலைப்பு =உண்மை)

skills.show()

வெளியீடு:

விளக்கம்:

முதல் CSV 6 பதிவுகளையும், இரண்டாவது CSV 3 பதிவுகளையும் வைத்துள்ளது. முதல் CSV முதலில் DataFrame இல் ஏற்றப்பட்டதைக் காணலாம். பின்னர், இரண்டாவது CSV ஏற்றப்பட்டது. இறுதியாக, PySpark DataFrame 9 பதிவுகளைக் கொண்டுள்ளது.

முடிவுரை

PySpark DataFrame இல் CSV ஐப் படிப்பது pyspark.sql.DataFrameReader.csv() முறையில் மிகவும் எளிமையானது. நெடுவரிசைகள் மற்றும் வடிவமைப்பைக் குறிப்பிட, இந்த முறைக்கு தலைப்பு மற்றும் வரையறுக்கப்பட்ட அளவுருக்களை அனுப்ப முடியும். PySpark ஆனது பல CSV கோப்புகளை ஒரே நேரத்தில் அவற்றின் விருப்பங்களுடன் வழங்கப்பட்ட முறைகளுடன் படிப்பதை ஆதரிக்கிறது. இந்த கட்டுரையில், வெவ்வேறு விருப்பங்களைக் கருத்தில் கொண்டு எடுத்துக்காட்டுகளைப் பார்த்தோம். மேலும், முறைக்கு விருப்பங்களை அனுப்பும் இரண்டு வழிகளைப் பார்த்தோம்.