ক্লাউড ডেটাপ্রোকে অ্যাপাচি স্পার্ক এবং জুপিটার নোটবুক

1. সংক্ষিপ্ত বিবরণ

এই ল্যাবটি ক্লাউড ডেটাপ্রোকে অ্যাপাচি স্পার্ক এবং জুপিটার নোটবুকগুলি কীভাবে সেট-আপ এবং ব্যবহার করতে হয় তা কভার করবে।

জুপিটার নোটবুকগুলি অনুসন্ধানমূলক ডেটা বিশ্লেষণ এবং মেশিন লার্নিং মডেল তৈরির জন্য ব্যাপকভাবে ব্যবহৃত হয় কারণ এগুলি আপনাকে ইন্টারেক্টিভভাবে আপনার কোড চালাতে এবং তাৎক্ষণিকভাবে আপনার ফলাফল দেখতে দেয়।

তবে অ্যাপাচি স্পার্ক এবং জুপিটার নোটবুক সেট আপ করা এবং ব্যবহার করা জটিল হতে পারে।

b9ed855863c57d6.png সম্পর্কে

ক্লাউড ডেটাপ্রোক এটিকে দ্রুত এবং সহজ করে তোলে, যার মাধ্যমে আপনি অ্যাপাচি স্পার্ক, জুপিটার কম্পোনেন্ট এবং কম্পোনেন্ট গেটওয়ে দিয়ে প্রায় 90 সেকেন্ডের মধ্যে একটি ডেটাপ্রোক ক্লাস্টার তৈরি করতে পারবেন।

তুমি কি শিখবে

এই কোডল্যাবে, আপনি শিখবেন কিভাবে:

  • আপনার ক্লাস্টারের জন্য একটি গুগল ক্লাউড স্টোরেজ বাকেট তৈরি করুন
  • জুপিটার এবং কম্পোনেন্ট গেটওয়ে দিয়ে একটি ডেটাপ্রোক ক্লাস্টার তৈরি করুন,
  • Dataproc-এ JupyterLab ওয়েব UI অ্যাক্সেস করুন
  • Spark BigQuery স্টোরেজ সংযোগকারী ব্যবহার করে একটি নোটবুক তৈরি করুন
  • একটি স্পার্ক কাজ চালানো এবং ফলাফল পরিকল্পনা করা।

গুগল ক্লাউডে এই ল্যাবটি পরিচালনা করতে মোট খরচ প্রায় $1। ক্লাউড ডেটাপ্রোকের মূল্য নির্ধারণের সম্পূর্ণ বিবরণ এখানে পাওয়া যাবে।

২. একটি প্রকল্প তৈরি করা

console.cloud.google.com- এ Google Cloud Platform কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন:

7e541d932b20c074.png সম্পর্কে

2deefc9295d114ea.png দ্বারা পোস্ট করা 1 অনুবাদ, বিস্তারিত সব অনুবাদ

a92a49afe05008a.png সম্পর্কে

এরপর, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে।

এই কোডল্যাবটি চালাতে আপনার কয়েক ডলারের বেশি খরচ হবে না, তবে আপনি যদি আরও বেশি রিসোর্স ব্যবহার করার সিদ্ধান্ত নেন অথবা সেগুলি চালিয়ে যেতে দেন তবে এটি আরও বেশি হতে পারে। এই কোডল্যাবের শেষ অংশটি আপনাকে আপনার প্রকল্পটি পরিষ্কার করার কাজে সাহায্য করবে।

গুগল ক্লাউড প্ল্যাটফর্মের নতুন ব্যবহারকারীরা $300 এর বিনামূল্যে ট্রায়ালের জন্য যোগ্য।

৩. আপনার পরিবেশ সেট আপ করা

প্রথমে, ক্লাউড কনসোলের উপরের ডানদিকের কোণায় থাকা বোতামটি ক্লিক করে ক্লাউড শেল খুলুন:

অনুসরণ

ক্লাউড শেল লোড হওয়ার পর, পূর্ববর্তী ধাপ থেকে প্রজেক্ট আইডি সেট করতে নিম্নলিখিত কমান্ডটি চালান**:**

gcloud config set project <project_id>

ক্লাউড কনসোলের উপরের বাম দিকে আপনার প্রোজেক্টে ক্লিক করেও প্রোজেক্ট আইডি পাওয়া যাবে:

b4b233632ce0c3c4.png সম্পর্কে

c7e39ffc6dec3765.png সম্পর্কে

এরপর, Dataproc, Compute Engine এবং BigQuery Storage API গুলি সক্ষম করুন।

gcloud services enable dataproc.googleapis.com \
  compute.googleapis.com \
  storage-component.googleapis.com \
  bigquery.googleapis.com \
  bigquerystorage.googleapis.com

বিকল্পভাবে এটি ক্লাউড কনসোলে করা যেতে পারে। স্ক্রিনের উপরের বাম দিকে মেনু আইকনে ক্লিক করুন।

অনুসরণ

ড্রপ ডাউন থেকে API ম্যানেজার নির্বাচন করুন।

408af5f32c4b7c25.png সম্পর্কে

Enable APIs and Services এ ক্লিক করুন।

a9c0e84296a7ba5b.png সম্পর্কে

নিম্নলিখিত API গুলি অনুসন্ধান করুন এবং সক্ষম করুন:

  • কম্পিউট ইঞ্জিন API
  • ডেটাপ্রোক এপিআই
  • বিগকুয়েরি এপিআই
  • BigQuery স্টোরেজ API

৪. একটি GCS বাকেট তৈরি করুন

আপনার ডেটার সবচেয়ে কাছের অঞ্চলে একটি গুগল ক্লাউড স্টোরেজ বাকেট তৈরি করুন এবং এটিকে একটি অনন্য নাম দিন।

এটি ডেটাপ্রোক ক্লাস্টারের জন্য ব্যবহার করা হবে।

REGION=us-central1
BUCKET_NAME=<your-bucket-name>

gsutil mb -c standard -l ${REGION} gs://${BUCKET_NAME}

আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন

Creating gs://<your-bucket-name>/...

৫. জুপিটার এবং কম্পোনেন্ট গেটওয়ে দিয়ে আপনার ডেটাপ্রোক ক্লাস্টার তৈরি করুন

আপনার ক্লাস্টার তৈরি করা হচ্ছে

আপনার ক্লাস্টারের জন্য env ভেরিয়েবল সেট করুন

REGION=us-central1
ZONE=us-central1-a
CLUSTER_NAME=spark-jupyter
BUCKET_NAME=<your-bucket-name>

তারপর আপনার ক্লাস্টারে Jupyter এর সাথে কাজ করার জন্য প্রয়োজনীয় সমস্ত উপাদান সহ আপনার ক্লাস্টার তৈরি করতে এই gcloud কমান্ডটি চালান।

gcloud beta dataproc clusters create ${CLUSTER_NAME} \
 --region=${REGION} \
 --image-version=1.4 \
 --master-machine-type=n1-standard-4 \
 --worker-machine-type=n1-standard-4 \
 --bucket=${BUCKET_NAME} \
 --optional-components=ANACONDA,JUPYTER \
 --enable-component-gateway 

আপনার ক্লাস্টার তৈরি হওয়ার সময় আপনি নিম্নলিখিত আউটপুটটি দেখতে পাবেন

Waiting on operation [projects/spark-jupyter/regions/us-central1/operations/abcd123456].
Waiting for cluster creation operation...

আপনার ক্লাস্টার তৈরি করতে প্রায় 90 সেকেন্ড সময় লাগবে এবং এটি প্রস্তুত হয়ে গেলে আপনি Dataproc ক্লাউড কনসোল UI থেকে আপনার ক্লাস্টার অ্যাক্সেস করতে পারবেন।

অপেক্ষা করার সময় আপনি gcloud কমান্ডে ব্যবহৃত পতাকা সম্পর্কে আরও জানতে নীচের লেখাটি পড়তে পারেন।

ক্লাস্টার তৈরি হয়ে গেলে আপনার নিম্নলিখিত আউটপুটটি দেখা উচিত:

Created [https://dataproc.googleapis.com/v1beta2/projects/project-id/regions/us-central1/clusters/spark-jupyter] Cluster placed in zone [us-central1-a].

gcloud dataproc create কমান্ডে ব্যবহৃত পতাকা

gcloud dataproc create কমান্ডে ব্যবহৃত পতাকাগুলির একটি বিশদ বিবরণ এখানে দেওয়া হল।

--region=${REGION}

ক্লাস্টারটি কোথায় তৈরি করা হবে তার অঞ্চল এবং জোন নির্দিষ্ট করে। আপনি এখানে উপলব্ধ অঞ্চলগুলির তালিকা দেখতে পারেন।

--image-version=1.4

আপনার ক্লাস্টারে ব্যবহারের জন্য ছবির সংস্করণ। আপনি এখানে উপলব্ধ সংস্করণগুলির তালিকা দেখতে পারেন।

--bucket=${BUCKET_NAME}

ক্লাস্টারের জন্য ব্যবহার করার জন্য আপনার আগে তৈরি করা Google ক্লাউড স্টোরেজ বাকেটটি নির্দিষ্ট করুন। যদি আপনি একটি GCS বাকেট সরবরাহ না করেন তবে এটি আপনার জন্য তৈরি করা হবে।

GCS বাকেট মুছে না ফেলার কারণে, আপনার ক্লাস্টার মুছে ফেললেও, এখানেই আপনার নোটবুকগুলি সংরক্ষণ করা হবে।

--master-machine-type=n1-standard-4
--worker-machine-type=n1-standard-4

আপনার Dataproc ক্লাস্টারের জন্য ব্যবহারযোগ্য মেশিনের ধরণ। আপনি এখানে উপলব্ধ মেশিনের ধরণগুলির একটি তালিকা দেখতে পারেন।

ডিফল্টরূপে, যদি আপনি –num-workers ফ্ল্যাগ সেট না করেন তবে ১টি মাস্টার নোড এবং ২টি ওয়ার্কার নোড তৈরি হয়।

--optional-components=ANACONDA,JUPYTER

ঐচ্ছিক উপাদানগুলির জন্য এই মানগুলি সেট করলে আপনার ক্লাস্টারে Jupyter এবং Anaconda (যা Jupyter নোটবুকের জন্য প্রয়োজনীয়) এর জন্য প্রয়োজনীয় সমস্ত লাইব্রেরি ইনস্টল হবে।

--enable-component-gateway

কম্পোনেন্ট গেটওয়ে সক্ষম করলে অ্যাপাচি নক্স এবং ইনভার্টিং প্রক্সি ব্যবহার করে একটি অ্যাপ ইঞ্জিন লিঙ্ক তৈরি হয় যা জুপিটার এবং জুপিটারল্যাব ওয়েব ইন্টারফেসে সহজ, নিরাপদ এবং প্রমাণীকরণযোগ্য অ্যাক্সেস দেয় যার অর্থ আপনাকে আর SSH টানেল তৈরি করতে হবে না।

এটি ক্লাস্টারের অন্যান্য সরঞ্জামগুলির জন্য লিঙ্ক তৈরি করবে যার মধ্যে রয়েছে ইয়ার্ন রিসোর্স ম্যানেজার এবং স্পার্ক হিস্ট্রি সার্ভার যা আপনার কাজের কর্মক্ষমতা এবং ক্লাস্টার ব্যবহারের ধরণগুলি দেখার জন্য কার্যকর।

৬. একটি অ্যাপাচি স্পার্ক নোটবুক তৈরি করুন

JupyterLab ওয়েব ইন্টারফেস অ্যাক্সেস করা

ক্লাস্টারটি প্রস্তুত হয়ে গেলে, আপনি Dataproc Clusters - Cloud console- এ গিয়ে, আপনার তৈরি করা ক্লাস্টারে ক্লিক করে এবং Web Interfaces ট্যাবে গিয়ে JupyterLab ওয়েব ইন্টারফেসের কম্পোনেন্ট গেটওয়ে লিঙ্কটি খুঁজে পেতে পারেন।

afc40202d555de47.png সম্পর্কে

আপনি লক্ষ্য করবেন যে আপনার কাছে Jupyter অ্যাক্সেস আছে যা হল ক্লাসিক নোটবুক ইন্টারফেস অথবা JupyterLab যা Project Jupyter এর পরবর্তী প্রজন্মের UI হিসাবে বর্ণনা করা হয়েছে।

JupyterLab-এ অনেক নতুন UI বৈশিষ্ট্য রয়েছে এবং তাই আপনি যদি নোটবুক ব্যবহারে নতুন হন বা সর্বশেষ উন্নতি খুঁজছেন তবে JupyterLab ব্যবহার করার পরামর্শ দেওয়া হচ্ছে কারণ এটি অবশেষে অফিসিয়াল ডক্স অনুসারে ক্লাসিক Jupyter ইন্টারফেসকে প্রতিস্থাপন করবে।

পাইথন ৩ কার্নেল দিয়ে একটি নোটবুক তৈরি করুন

a463623f2ebf0518.png সম্পর্কে

লঞ্চার ট্যাব থেকে Python 3 নোটবুক আইকনে ক্লিক করে Python 3 কার্নেল (PySpark কার্নেল নয়) দিয়ে একটি নোটবুক তৈরি করুন যা আপনাকে নোটবুকে SparkSession কনফিগার করতে এবং BigQuery স্টোরেজ API ব্যবহার করার জন্য প্রয়োজনীয় spark-bigquery-connector অন্তর্ভুক্ত করতে দেয়।

নোটবুকের নাম পরিবর্তন করুন

196a3276ed07e1f3.png সম্পর্কে

বাম দিকের সাইডবারে অথবা উপরের নেভিগেশনে নোটবুকের নামের উপর রাইট ক্লিক করুন এবং নোটবুকটির নাম পরিবর্তন করে "BigQuery Storage & Spark DataFrames.ipynb" রাখুন।

নোটবুকে আপনার স্পার্ক কোডটি চালান।

অনুসরণ

এই নোটবুকে, আপনি spark-bigquery-connector ব্যবহার করবেন যা BigQuery এবং Spark এর মধ্যে ডেটা পড়ার এবং লেখার জন্য একটি টুল যা BigQuery স্টোরেজ API ব্যবহার করে।

BigQuery স্টোরেজ API একটি RPC-ভিত্তিক প্রোটোকল ব্যবহার করে BigQuery-তে ডেটা অ্যাক্সেস করার ক্ষেত্রে উল্লেখযোগ্য উন্নতি এনেছে। এটি সমান্তরালভাবে ডেটা পঠন এবং লেখার পাশাপাশি Apache Avro এবং Apache Arrow- এর মতো বিভিন্ন সিরিয়ালাইজেশন ফর্ম্যাট সমর্থন করে। উচ্চ-স্তরে, এটি উল্লেখযোগ্যভাবে উন্নত কর্মক্ষমতা প্রদান করে, বিশেষ করে বৃহত্তর ডেটা সেটগুলিতে।

প্রথম কক্ষে আপনার ক্লাস্টারের স্কালা সংস্করণটি পরীক্ষা করুন যাতে আপনি spark-bigquery-connector jar এর সঠিক সংস্করণটি অন্তর্ভুক্ত করতে পারেন।

ইনপুট [1]:

!scala -version

আউটপুট [1]: f580e442576b8b1f.png সম্পর্কে একটি স্পার্ক সেশন তৈরি করুন এবং স্পার্ক-বিগকুয়েরি-কানেক্টর প্যাকেজটি অন্তর্ভুক্ত করুন।

যদি আপনার Scala সংস্করণ 2.11 হয় তাহলে নিম্নলিখিত প্যাকেজটি ব্যবহার করুন।

com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.15.1-beta

যদি আপনার Scala সংস্করণ 2.12 হয় তাহলে নিম্নলিখিত প্যাকেজটি ব্যবহার করুন।

com.google.cloud.spark:spark-bigquery-with-dependencies_2.12:0.15.1-beta

ইনপুট [2]:

from pyspark.sql import SparkSession
spark = SparkSession.builder \
 .appName('BigQuery Storage & Spark DataFrames') \
 .config('spark.jars.packages', 'com.google.cloud.spark:spark-bigquery-with-dependencies_2.11:0.15.1-beta') \
 .getOrCreate()

repl.eagerEval সক্ষম করুন

এটি প্রতিটি ধাপে ডেটাফ্রেমের ফলাফল df.show() দেখানোর প্রয়োজন ছাড়াই আউটপুট দেবে এবং আউটপুটের ফর্ম্যাটিংও উন্নত করবে।

ইনপুট [3]:

spark.conf.set("spark.sql.repl.eagerEval.enabled",True)

স্পার্ক ডেটাফ্রেমে BigQuery টেবিলটি পড়ুন

একটি পাবলিক BigQuery ডেটাসেট থেকে ডেটা পড়ে একটি Spark DataFrame তৈরি করুন। এটি Spark ক্লাস্টারে ডেটা লোড করার জন্য spark-bigquery-connector এবং BigQuery Storage API ব্যবহার করে।

একটি Spark DataFrame তৈরি করুন এবং Wikipedia pageviews এর জন্য BigQuery পাবলিক ডেটাসেট থেকে ডেটা লোড করুন। আপনি লক্ষ্য করবেন যে আপনি ডেটাতে কোনও কোয়েরি চালাচ্ছেন না কারণ আপনি Spark-bigquery-connector ব্যবহার করে Spark-এ ডেটা লোড করছেন যেখানে ডেটা প্রক্রিয়াকরণ ঘটবে। যখন এই কোডটি চালানো হবে তখন এটি আসলে টেবিলটি লোড করবে না কারণ এটি Spark-এ একটি অলস মূল্যায়ন এবং পরবর্তী ধাপে কার্যকর করা হবে।

ইনপুট [4]:

table = "bigquery-public-data.wikipedia.pageviews_2020"

df_wiki_pageviews = spark.read \
  .format("bigquery") \
  .option("table", table) \
  .option("filter", "datehour >= '2020-03-01' AND datehour < '2020-03-02'") \
  .load()

df_wiki_pageviews.printSchema()

আউটপুট [4]:

c107a33f6fc30ca.png

প্রয়োজনীয় কলামগুলি নির্বাচন করুন এবং where() ব্যবহার করে একটি ফিল্টার প্রয়োগ করুন যা filter() এর একটি উপনাম।

এই কোডটি রান করা হলে এটি একটি স্পার্ক অ্যাকশন ট্রিগার করে এবং এই সময়ে BigQuery স্টোরেজ থেকে ডেটা পড়া হয়।

ইনপুট [5]:

df_wiki_en = df_wiki_pageviews \
  .select("datehour", "wiki", "views") \
  .where("views > 1000 AND wiki in ('en', 'en.m')") \

df_wiki_en

আউটপুট [5]:

ad363cbe510d625a.png সম্পর্কে

শীর্ষ পৃষ্ঠাগুলি দেখতে শিরোনাম অনুসারে গ্রুপ করুন এবং পৃষ্ঠা দর্শন অনুসারে ক্রম করুন

ইনপুট [6]:

import pyspark.sql.functions as F

df_datehour_totals = df_wiki_en \
  .groupBy("datehour") \
  .agg(F.sum('views').alias('total_views'))

df_datehour_totals.orderBy('total_views', ascending=False)

আউটপুট [6]: f718abd05afc0f4.png সম্পর্কে

৭. নোটবুকে পাইথন প্লটিং লাইব্রেরি ব্যবহার করুন

আপনার স্পার্ক জবের আউটপুট প্লট করার জন্য আপনি পাইথনে উপলব্ধ বিভিন্ন প্লটিং লাইব্রেরি ব্যবহার করতে পারেন।

স্পার্ক ডেটাফ্রেমকে পান্ডাস ডেটাফ্রেমে রূপান্তর করুন

স্পার্ক ডেটাফ্রেমকে পান্ডাস ডেটাফ্রেমে রূপান্তর করুন এবং ডেটআওয়ারকে সূচক হিসেবে সেট করুন। আপনি যদি পাইথনে সরাসরি ডেটা নিয়ে কাজ করতে চান এবং অনেকগুলি উপলব্ধ পাইথন প্লটিং লাইব্রেরি ব্যবহার করে ডেটা প্লট করতে চান তবে এটি কার্যকর।

ইনপুট [7]:

spark.conf.set("spark.sql.execution.arrow.enabled", "true")
pandas_datehour_totals = df_datehour_totals.toPandas()

pandas_datehour_totals.set_index('datehour', inplace=True)
pandas_datehour_totals.head()

আউটপুট [7]:

3df2aaa2351f028d.png সম্পর্কে

পান্ডাস ডেটাফ্রেম প্লট করা হচ্ছে

নোটবুকে প্লট প্রদর্শনের জন্য প্রয়োজনীয় matplotlib লাইব্রেরিটি আমদানি করুন।

ইনপুট [8]:

import matplotlib.pyplot as plt

পান্ডাস ডেটাফ্রেম থেকে একটি লাইন চার্ট তৈরি করতে পান্ডাস প্লট ফাংশন ব্যবহার করুন।

ইনপুট [9]:

pandas_datehour_totals.plot(kind='line',figsize=(12,6));

আউটপুট [9]: bade7042c3033594.png

নোটবুকটি GCS-এ সংরক্ষিত আছে কিনা তা পরীক্ষা করুন।

এখন আপনার Dataproc ক্লাস্টারে আপনার প্রথম Jupyter নোটবুকটি চালু থাকা উচিত। আপনার নোটবুকের একটি নাম দিন এবং এটি ক্লাস্টার তৈরি করার সময় ব্যবহৃত GCS বাকেটে স্বয়ংক্রিয়ভাবে সংরক্ষিত হবে।

আপনি ক্লাউড শেলে এই gsutil কমান্ড ব্যবহার করে এটি পরীক্ষা করতে পারেন।

BUCKET_NAME=<your-bucket-name>
gsutil ls gs://${BUCKET_NAME}/notebooks/jupyter

আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন

gs://bucket-name/notebooks/jupyter/
gs://bucket-name/notebooks/jupyter/BigQuery Storage & Spark DataFrames.ipynb

৮. অপ্টিমাইজেশন টিপ - মেমরিতে ক্যাশে ডেটা

এমন কিছু পরিস্থিতি থাকতে পারে যেখানে আপনি প্রতিবার BigQuery স্টোরেজ থেকে ডেটা পড়ার পরিবর্তে মেমরিতে ডেটা রাখতে চান।

এই কাজটি BigQuery থেকে ডেটা পড়বে এবং ফিল্টারটিকে BigQuery-তে পুশ করবে। এরপর Apache Spark-এ অ্যাগ্রিগেশন গণনা করা হবে।

import pyspark.sql.functions as F

table = "bigquery-public-data.wikipedia.pageviews_2020"

df_wiki_pageviews = spark.read \
 .format("bigquery") \
 .option("table", table) \
 .option("filter", "datehour >= '2020-03-01' AND datehour < '2020-03-02'") \
 .load()

df_wiki_en = df_wiki_pageviews \
 .select("title", "wiki", "views") \
 .where("views > 10 AND wiki in ('en', 'en.m')")

df_wiki_en_totals = df_wiki_en \
.groupBy("title") \
.agg(F.sum('views').alias('total_views'))

df_wiki_en_totals.orderBy('total_views', ascending=False)

আপনি উপরের কাজটি পরিবর্তন করে টেবিলের একটি ক্যাশে অন্তর্ভুক্ত করতে পারেন এবং এখন উইকি কলামের ফিল্টারটি অ্যাপাচি স্পার্ক দ্বারা মেমরিতে প্রয়োগ করা হবে।

import pyspark.sql.functions as F

table = "bigquery-public-data.wikipedia.pageviews_2020"

df_wiki_pageviews = spark.read \
 .format("bigquery") \
 .option("table", table) \
 .option("filter", "datehour >= '2020-03-01' AND datehour < '2020-03-02'") \
 .load()

df_wiki_all = df_wiki_pageviews \
 .select("title", "wiki", "views") \
 .where("views > 10")

# cache the data in memory
df_wiki_all.cache()

df_wiki_en = df_wiki_all \
 .where("wiki in ('en', 'en.m')")

df_wiki_en_totals = df_wiki_en \
.groupBy("title") \
.agg(F.sum('views').alias('total_views'))

df_wiki_en_totals.orderBy('total_views', ascending=False)

এরপর আপনি BigQuery স্টোরেজ থেকে ডেটা আবার পড়ার পরিবর্তে ক্যাশেড ডেটা ব্যবহার করে অন্য উইকি ভাষার জন্য ফিল্টার করতে পারেন এবং এর ফলে এটি অনেক দ্রুত চলবে।

df_wiki_de = df_wiki_all \
 .where("wiki in ('de', 'de.m')")

df_wiki_de_totals = df_wiki_de \
.groupBy("title") \
.agg(F.sum('views').alias('total_views'))

df_wiki_de_totals.orderBy('total_views', ascending=False)

আপনি চালিয়ে ক্যাশে মুছে ফেলতে পারেন

df_wiki_all.unpersist()

৯. আরও ব্যবহারের জন্য নোটবুকের উদাহরণ দিন

ক্লাউড ডেটাপ্রোক গিটহাব রেপোতে সাধারণ অ্যাপাচি স্পার্ক প্যাটার্ন সহ জুপিটার নোটবুক রয়েছে যা ডেটা লোড করার, ডেটা সংরক্ষণ করার এবং বিভিন্ন গুগল ক্লাউড প্ল্যাটফর্ম পণ্য এবং ওপেন-সোর্স সরঞ্জামগুলির সাথে আপনার ডেটা প্লট করার জন্য ব্যবহৃত হয়:

১০. পরিষ্কার করা

এই কুইকস্টার্ট সম্পন্ন হওয়ার পরে আপনার GCP অ্যাকাউন্টে অপ্রয়োজনীয় চার্জ এড়াতে:

  1. পরিবেশ এবং আপনার তৈরি করা ক্লাউড স্টোরেজ বাকেটটি মুছে ফেলুন।
  2. Dataproc পরিবেশ মুছে ফেলুন

যদি আপনি শুধুমাত্র এই কোডল্যাবের জন্য একটি প্রকল্প তৈরি করে থাকেন, তাহলে আপনি ঐচ্ছিকভাবে প্রকল্পটি মুছে ফেলতে পারেন:

  1. GCP কনসোলে, প্রজেক্ট পৃষ্ঠায় যান।
  2. প্রকল্পের তালিকায়, আপনি যে প্রকল্পটি মুছতে চান তা নির্বাচন করুন এবং মুছুন ক্লিক করুন।
  3. বাক্সে, প্রকল্প আইডি টাইপ করুন, এবং তারপর প্রকল্পটি মুছে ফেলতে Shut down এ ক্লিক করুন।

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ৩.০ জেনেরিক লাইসেন্স এবং অ্যাপাচি ২.০ লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।