PySpark পড়ুন CSV()

Pyspark Paruna Csv



read.csv() ফাংশন ব্যবহার করে PySpark-এ CSV ডেটা থেকে PySpark ডেটাফ্রেম তৈরি করা সম্ভব। কিছু পরিস্থিতিতে, আপনি যদি PySpark DataFrame-এ বাহ্যিক ডেটা লোড করতে চান, PySpark JSON, CSV ইত্যাদির মতো অনেক ফরম্যাট সমর্থন করে৷ এই টিউটোরিয়ালে, আমরা দেখব কীভাবে CSV ডেটা পড়তে হয় এবং এটি PySpark ডেটাফ্রেমে লোড করতে হয়৷ এছাড়াও, আমরা উদাহরণ সহ একবারে একক ডেটাফ্রেমে একাধিক CSV ফাইল লোড করার বিষয়ে আলোচনা করব।

Pyspark.sql.DataFrameReader.csv()

এই পদ্ধতিটি CSV ফাইল/গুলি থেকে ডেটা পড়তে এবং সেগুলিকে PySpark ডেটাফ্রেমে সংরক্ষণ করতে ব্যবহৃত হয়। ডেটাফ্রেমে CSV পড়ার সময় এটি বিকল্পগুলি নেয়। আমরা উদাহরণসহ বিভিন্ন অপশন নিয়ে বিস্তারিত আলোচনা করব। একাধিক CSV ফাইল পাস করার সময়, কমা অপারেটর দ্বারা আলাদা করা একটি তালিকায় এক্সটেনশন সহ ফাইলের নামগুলি পাস করা গুরুত্বপূর্ণ৷ আপনি যদি শুধুমাত্র একটি CSV ফাইল পড়ছেন, তাহলে তালিকায় ফাইলের নাম দেওয়ার প্রয়োজন নেই।

বাক্য গঠন:







একক ফাইল - spark_app.read.csv('file.csv', বিকল্প …)

একাধিক ফাইল – spark_app.read.csv(['file1.csv','file2.csv',…],বিকল্প...)



বিকল্প এবং ফাইলের নাম আলাদা করাও সম্ভব।



ফাইল – spark_app.read.options(options…).csv('file.csv')





একাধিক ফাইল – spark_app.read.options(options…).csv(['file1.csv','file2.csv',…])

নিম্নলিখিত উদাহরণগুলি বাস্তবায়ন করার আগে PySpark লাইব্রেরি ইনস্টল করুন।



পিপ ইনস্টল pyspark

সফল ইনস্টলেশনের পরে, আপনি নিম্নলিখিত হিসাবে আউটপুট দেখতে পারেন:

দৃশ্য 1: CSV ফাইল হেডার পড়া

আসুন 5টি রেকর্ড সহ “person_skill.csv” নামে একটি CSV ফাইল তৈরি করি যা নিম্নলিখিতটিতে দেখানো হয়েছে এবং এটি PySpark ডেটাফ্রেমে লোড করুন:

হেডার প্যারামিটারটি পাইস্পার্ক ডেটাফ্রেমে কলামের নাম নির্দিষ্ট করতে ব্যবহৃত হয়। এটি একটি বুলিয়ান মান লাগে। যদি এটি 'সত্য' হয়, CSV ফাইলে বিদ্যমান প্রকৃত কলামের নামগুলি ডেটাফ্রেমে নির্দিষ্ট করা হয়, অন্যথায়, c0, c1, c2… নির্দিষ্ট করা হয় এবং প্রকৃত কলামের নামগুলি একটি সারি হবে৷ হেডার প্যারামিটারটিকে সত্য হিসাবে সেট করার জন্য এটি সর্বোত্তম অনুশীলন করা হয়।

উদাহরণ 1: হেডার = সত্য

পাইসপার্ক আমদানি করুন

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 ফাইল থেকে তৈরি করা হয়েছে।

কলাম চেক করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:

skills.columns

উদাহরণ 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 ডেটাফ্রেমে সারি হিসাবে সংরক্ষণ করা হয়।

skills.columns

Read.options.csv() ব্যবহার করে

এখন, আমরা read.options.csv() পদ্ধতি ব্যবহার করে CSV ফাইলটি পড়ি। এখানে, আমাদের csv() তে আর্গুমেন্ট এবং ফাইলের নাম হিসাবে বিকল্পগুলির মধ্যে ডিলিমিটার, হেডার, ইত্যাদির মত বিকল্পগুলি পাস করতে হবে। হেডার প্যারামিটারটিকে 'True' এ সেট করে পাস করি।

দৃশ্যপট 1:

পাইসপার্ক আমদানি করুন

pyspark.sql থেকে SparkSession আমদানি করুন

linuxhint_spark_app = SparkSession.builder.appName( 'লিনাক্স ইঙ্গিত' .getOrCreate()

# read.options.csv() ব্যবহার করে

দক্ষতা = linuxhint_spark_app.read. বিকল্প ( হেডার =True).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 ডেটাফ্রেমে যুক্ত করা হয়। আমাদের শুধু পদ্ধতির মধ্যে একটি তালিকায় ফাইলের নাম পাস করতে হবে।

উদাহরণ:

আসুন নিম্নলিখিত ডেটা সহ 'person_skill.csv' এবং 'person_skill2.csv' নামে নিম্নলিখিত CSV ফাইলগুলি রাখি:


এই দুটি CSV ফাইল পড়ুন এবং একটি একক PySpark ডেটাফ্রেমে সংরক্ষণ করুন।

পাইসপার্ক আমদানি করুন

pyspark.sql থেকে SparkSession আমদানি করুন

linuxhint_spark_app = SparkSession.builder.appName( 'লিনাক্স ইঙ্গিত' .getOrCreate()

# হেডার সহ কলাম লেবেল সহ দক্ষতায় ব্যক্তি_skill.csv এবং person_skill2.csv নামের 2টি csv ফাইল লোড করুন

দক্ষতা = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],সেপ্টেম্বর= ',' , হেডার =সত্য)

skills.show()

আউটপুট:

ব্যাখ্যা:

প্রথম CSV-এ 6টি রেকর্ড এবং দ্বিতীয় CSV-এ 3টি রেকর্ড রয়েছে৷ আমরা দেখতে পাচ্ছি যে প্রথম CSV প্রথমে ডেটাফ্রেমে লোড করা হয়েছে। তারপর, দ্বিতীয় CSV লোড হয়. অবশেষে, PySpark DataFrame 9টি রেকর্ড ধারণ করে।

উপসংহার

PySpark DataFrame-এ CSV পড়া pyspark.sql.DataFrameReader.csv() পদ্ধতিতে বেশ সহজ। কলাম এবং বিন্যাস নির্দিষ্ট করার জন্য এই পদ্ধতিতে হেডার এবং ডিলিমিটার প্যারামিটার পাস করা সম্ভব হতে পারে। PySpark তাদের বিকল্পগুলির সাথে প্রদত্ত পদ্ধতিগুলির সাথে এক সময়ে একাধিক CSV ফাইল পড়া সমর্থন করে। এই নিবন্ধে, আমরা বিভিন্ন বিকল্প বিবেচনা করে উদাহরণ দেখেছি। এছাড়াও, আমরা পদ্ধতিতে বিকল্পগুলি পাস করার দুটি উপায় দেখেছি।