এই নির্দেশিকায়, আমরা প্রধানত pyspark.sql.DataFrameReader ক্লাসে উপলব্ধ read.parquet() ফাংশন ব্যবহার করে PySpark DataFrame/SQL-এ parquet ফাইল পড়ার/লোড করার উপর ফোকাস করব।
বিষয়বস্তুর বিষয়:
PySpark ডেটাফ্রেমে Parquet ফাইলটি পড়ুন
PySpark SQL এ Parquet ফাইলটি পড়ুন
Pyspark.sql.DataFrameReader.parquet()
এই ফাংশনটি parquet ফাইলটি পড়তে এবং PySpark DataFrame এ লোড করতে ব্যবহৃত হয়। এটি parquet ফাইলের পাথ/ফাইলের নাম নেয়। আমরা সহজভাবে read.parquet() ফাংশনটি ব্যবহার করতে পারি যেহেতু এটিই জেনেরিক ফাংশন।
বাক্য গঠন:
আসুন read.parquet() এর সিনট্যাক্স দেখি:
spark_app.read.parquet(file_name.parquet/path)প্রথমে, পিপ কমান্ড ব্যবহার করে PySpark মডিউল ইনস্টল করুন:
পিপ ইনস্টল pyspark
Parquet ফাইল পান
একটি parquet ফাইল পড়ার জন্য, আপনার সেই ডেটার প্রয়োজন যেখানে প্যারকেট ফাইলটি সেই ডেটা থেকে তৈরি করা হয়েছে৷ এই অংশে, আমরা দেখব কিভাবে PySpark DataFrame থেকে একটি parquet ফাইল তৈরি করা যায়।
আসুন 5টি রেকর্ড সহ একটি PySpark ডেটাফ্রেম তৈরি করি এবং এটিকে “industry_parquet” parquet ফাইলে লিখি।
পাইসপার্ক আমদানি করুনpyspark.sql থেকে SparkSession, Row আমদানি করুন
linuxhint_spark_app = SparkSession.builder.appName( 'লিনাক্স ইঙ্গিত' .getOrCreate()
# এমন ডেটাফ্রেম তৈরি করুন যা শিল্পের বিবরণ সঞ্চয় করে
industry_df = linuxhint_spark_app.createDataFrame([Row(Type= 'কৃষি' , এলাকা = 'আমেরিকা' ,
রেটিং = 'গরম' ,মোট_কর্মচারী= 100 ),
সারি(টাইপ= 'কৃষি' , এলাকা = 'ভারত' , রেটিং = 'গরম' ,মোট_কর্মচারী= 200 ),
সারি(টাইপ= 'উন্নয়ন' , এলাকা = 'আমেরিকা' , রেটিং = 'উষ্ণ' ,মোট_কর্মচারী= 100 ),
সারি(টাইপ= 'শিক্ষা' , এলাকা = 'আমেরিকা' , রেটিং = 'ঠান্ডা' ,মোট_কর্মচারী= 400 ),
সারি(টাইপ= 'শিক্ষা' , এলাকা = 'আমেরিকা' , রেটিং = 'উষ্ণ' ,মোট_কর্মচারী= বিশ )
])
# প্রকৃত ডেটাফ্রেম
industry_df.show()
# parquet ফাইলে শিল্প_ডিএফ লিখুন
industry_df.coalesce( 1 .write.parquet( 'শিল্প_পার্কেট' )
আউটপুট:
এটি হল ডেটাফ্রেম যা 5টি রেকর্ড ধারণ করে।
পূর্ববর্তী ডেটাফ্রেমের জন্য একটি parquet ফাইল তৈরি করা হয়েছে। এখানে, একটি এক্সটেনশন সহ আমাদের ফাইলের নাম হল “part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet”। আমরা পুরো টিউটোরিয়ালে এই ফাইলটি ব্যবহার করি।
PySpark ডেটাফ্রেমে Parquet ফাইলটি পড়ুন
আমরা কাঠবাদাম ফাইল আছে. আসুন read.parquet() ফাংশন ব্যবহার করে এই ফাইলটি পড়ি এবং এটি PySpark ডেটাফ্রেমে লোড করি।
পাইসপার্ক আমদানি করুনpyspark.sql থেকে SparkSession, Row আমদানি করুন
linuxhint_spark_app = SparkSession.builder.appName( 'লিনাক্স ইঙ্গিত' .getOrCreate()
# Parquet ফাইলটি dataframe_from_parquet অবজেক্টে পড়ুন।
dataframe_from_parquet=linuxhint_spark_app.read.parquet( 'part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet' )
# ডাটাফ্রেম_ফ্রম_পারকেট-ডেটাফ্রেম প্রদর্শন করুন
dataframe_from_parquet.show()
আউটপুট:
আমরা শো() পদ্ধতি ব্যবহার করে ডেটাফ্রেম প্রদর্শন করি যা প্যারকেট ফাইল থেকে তৈরি করা হয়েছিল।
Parquet ফাইলের সাথে SQL ক্যোয়ারী
ডেটাফ্রেমে লোড করার পরে, এসকিউএল টেবিল তৈরি করা এবং ডেটাফ্রেমে উপস্থিত ডেটা প্রদর্শন করা সম্ভব হতে পারে। আমাদের একটি টেম্পোরারি ভিউ তৈরি করতে হবে এবং ডাটাফ্রেম থেকে রেকর্ড ফেরত দিতে SQL কমান্ড ব্যবহার করতে হবে যা পারকুয়েট ফাইল থেকে তৈরি করা হয়েছে।
উদাহরণ 1:
'সেক্টর' নামে একটি অস্থায়ী ভিউ তৈরি করুন এবং ডেটাফ্রেমে রেকর্ডগুলি প্রদর্শন করতে SELECT কমান্ড ব্যবহার করুন। আপনি এই উল্লেখ করতে পারেন টিউটোরিয়াল এটি ব্যাখ্যা করে কিভাবে স্পার্ক-এসকিউএল-এ একটি ভিউ তৈরি করা যায়।
পাইসপার্ক আমদানি করুনpyspark.sql থেকে SparkSession, Row আমদানি করুন
linuxhint_spark_app = SparkSession.builder.appName( 'লিনাক্স ইঙ্গিত' .getOrCreate()
# Parquet ফাইলটি dataframe_from_parquet অবজেক্টে পড়ুন।
dataframe_from_parquet=linuxhint_spark_app.read.parquet( 'part-00000-ff70f69d-f1fb-4450-b4b4-dfd5a8d6c7ad-c000.snappy.parquet' )
# উপরের প্যারকেট ফাইল থেকে ভিউ তৈরি করুন যার নাম - 'সেক্টর'
dataframe_from_parquet.createOrReplaceTempView( 'সেক্টর' )
# সেক্টর থেকে সমস্ত রেকর্ড প্রদর্শনের জন্য প্রশ্ন
linuxhint_spark_app.sql( 'সেক্টর থেকে * নির্বাচন করুন' দেখান()
আউটপুট:
উদাহরণ 2:
পূর্ববর্তী ভিউ ব্যবহার করে, SQL ক্যোয়ারী লিখুন:
- 'ভারত' এর অন্তর্গত সেক্টর থেকে সমস্ত রেকর্ড প্রদর্শন করা।
- 100-এর বেশি কর্মচারীর সাথে সেক্টর থেকে সমস্ত রেকর্ড প্রদর্শন করা।
linuxhint_spark_app.sql( 'সেক্টর থেকে * নির্বাচন করুন যেখানে এলাকা = 'ভারত'' দেখান()
# 100-এর বেশি কর্মচারী সহ সেক্টর থেকে সমস্ত রেকর্ড প্রদর্শনের জন্য প্রশ্ন
linuxhint_spark_app.sql( 'সেই সেক্টর থেকে * নির্বাচন করুন যেখানে মোট_কর্মচারী>100' দেখান()
আউটপুট:
আয়তনের সাথে শুধুমাত্র একটি রেকর্ড রয়েছে যা 'ভারত' এবং 100 এর বেশি কর্মচারীদের সাথে দুটি রেকর্ড রয়েছে।
PySpark SQL এ Parquet ফাইলটি পড়ুন
প্রথমে, আমাদের CREATE কমান্ড ব্যবহার করে একটি ভিউ তৈরি করতে হবে। এসকিউএল কোয়েরির মধ্যে 'পাথ' কীওয়ার্ড ব্যবহার করে, আমরা স্পার্ক এসকিউএল-এ parquet ফাইলটি পড়তে পারি। পথের পরে, আমাদের ফাইলের ফাইলের নাম/অবস্থান নির্দিষ্ট করতে হবে।
বাক্য গঠন:
spark_app.sql( 'পারকেট বিকল্পগুলি ব্যবহার করে অস্থায়ী ভিউ ভিউ_নাম তৈরি করুন (পথ' file_name.parquet ')' )উদাহরণ 1:
'সেক্টর 2' নামে একটি অস্থায়ী ভিউ তৈরি করুন এবং এতে কাঠের ফাইলটি পড়ুন। sql() ফাংশন ব্যবহার করে, ভিউতে উপস্থিত সমস্ত রেকর্ড প্রদর্শন করতে নির্বাচন ক্যোয়ারী লিখুন।
পাইসপার্ক আমদানি করুনpyspark.sql থেকে SparkSession, Row আমদানি করুন
linuxhint_spark_app = SparkSession.builder.appName( 'লিনাক্স ইঙ্গিত' .getOrCreate()
# স্পার্ক-এসকিউএল-এ প্যারকেট ফাইলটি পড়ুন
linuxhint_spark_app.sql( 'পারকেট অপশন ব্যবহার করে অস্থায়ী ভিউ সেক্টর 2 তৈরি করুন (পথ' part-00000-ff70f69d-f1fb- 4450 -b4b4-dfd5a8d6c7ad-c000.snappy.parquet ')' )
# সেক্টর 2 থেকে সমস্ত রেকর্ড প্রদর্শনের জন্য প্রশ্ন
linuxhint_spark_app.sql( 'সেক্টর 2 থেকে * নির্বাচন করুন' দেখান()
আউটপুট:
উদাহরণ 2:
পূর্ববর্তী ভিউ ব্যবহার করুন এবং 'হট' বা 'কুল' রেটিং সহ সমস্ত রেকর্ড প্রদর্শন করতে ক্যোয়ারী লিখুন।
# রেটিং সহ সেক্টর 2 থেকে সমস্ত রেকর্ড প্রদর্শনের জন্য প্রশ্ন - গরম বা শীতল৷linuxhint_spark_app.sql( 'সেক্টর 2 থেকে * নির্বাচন করুন যেখানে রেটিং = 'হট' বা রেটিং = 'কুল'' দেখান()
আউটপুট:
'হট' বা 'কুল' রেটিং সহ তিনটি রেকর্ড রয়েছে।
উপসংহার
PySpark-এ, write.parquet() ফাংশন ডাটাফ্রেমকে প্যারকেট ফাইলে লেখে। read.parquet() ফাংশন PySpark DataFrame বা অন্য কোন ডেটাসোর্সে parquet ফাইল রিড করে। আমরা শিখেছি কিভাবে PySpark DataFrame এবং PySpark টেবিলে parquet ফাইল পড়তে হয়। এই টিউটোরিয়ালের অংশ হিসেবে, আমরা আলোচনা করেছি কিভাবে PySpark ডেটাফ্রেম থেকে টেবিল তৈরি করা যায় এবং WHERE ক্লজ ব্যবহার করে ডেটা ফিল্টার করা যায়।