Dataproc-এ PySpark-এর মাধ্যমে BigQuery ডেটা প্রি-প্রসেস করা হচ্ছে

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

এই কোডল্যাবে গুগল ক্লাউড প্ল্যাটফর্মে ডেটাপ্রোক সহ অ্যাপাচি স্পার্ক ব্যবহার করে কীভাবে একটি ডেটা প্রসেসিং পাইপলাইন তৈরি করতে হয়, তা আলোচনা করা হবে। ডেটা সায়েন্স এবং ডেটা ইঞ্জিনিয়ারিং-এ একটি সাধারণ ব্যবহার হলো এক স্টোরেজ লোকেশন থেকে ডেটা পড়া, সেটির উপর রূপান্তর (ট্রান্সফরমেশন) করা এবং অন্য একটি স্টোরেজ লোকেশনে তা লিখে রাখা। সাধারণ রূপান্তরগুলোর মধ্যে রয়েছে ডেটার বিষয়বস্তু পরিবর্তন করা, অপ্রয়োজনীয় তথ্য বাদ দেওয়া এবং ফাইলের ধরন পরিবর্তন করা।

এই কোডল্যাবে আপনি অ্যাপাচি স্পার্ক সম্পর্কে জানবেন এবং পাইস্পার্ক (অ্যাপাচি স্পার্কের পাইথন এপিআই), বিগকোয়েরি , গুগল ক্লাউড স্টোরেজ ও রেডিটের ডেটা ব্যবহার করে ডেটাপ্রকের মাধ্যমে একটি নমুনা পাইপলাইন চালাবেন।

২. অ্যাপাচি স্পার্কের পরিচিতি (ঐচ্ছিক)

ওয়েবসাইট অনুসারে, " অ্যাপাচি স্পার্ক হলো বৃহৎ পরিসরের ডেটা প্রক্রিয়াকরণের জন্য একটি সমন্বিত অ্যানালিটিক্স ইঞ্জিন।" এটি আপনাকে সমান্তরালভাবে এবং ইন-মেমোরিতে ডেটা বিশ্লেষণ ও প্রক্রিয়াকরণ করতে দেয়, যা একাধিক ভিন্ন মেশিন এবং নোড জুড়ে ব্যাপক সমান্তরাল গণনার সুযোগ করে দেয়। এটি মূলত ২০১৪ সালে প্রচলিত ম্যাপরিডিউস (MapReduce)- এর একটি আপগ্রেড হিসেবে প্রকাশিত হয়েছিল এবং এখনও বৃহৎ পরিসরের গণনা সম্পাদনের জন্য সবচেয়ে জনপ্রিয় ফ্রেমওয়ার্কগুলোর মধ্যে একটি। অ্যাপাচি স্পার্ক স্কালা (Scala) ভাষায় লেখা এবং ফলস্বরূপ স্কালা, জাভা, পাইথন এবং আর (R)-এ এর এপিআই (API) রয়েছে। এতে প্রচুর লাইব্রেরি রয়েছে, যেমন ডেটার উপর এসকিউএল (SQL) কোয়েরি চালানোর জন্য স্পার্ক এসকিউএল (Spark SQL) , ডেটা স্ট্রিমিংয়ের জন্য স্পার্ক স্ট্রিমিং (Spark Streaming) , মেশিন লার্নিংয়ের জন্য এমএললিব (MLlib) এবং গ্রাফ প্রক্রিয়াকরণের জন্য গ্রাফএক্স (GraphX ), যার সবগুলোই অ্যাপাচি স্পার্ক ইঞ্জিনে চলে।

32add0b6a47bafbc.png

Spark নিজে নিজে চলতে পারে অথবা স্কেলিংয়ের জন্য Yarn , Mesos বা Kubernetes-এর মতো রিসোর্স ম্যানেজমেন্ট সার্ভিস ব্যবহার করতে পারে। এই কোডল্যাবের জন্য আপনি Dataproc ব্যবহার করবেন, যা Yarn ব্যবহার করে।

স্পার্কে ডেটা মূলত RDD বা রেসিলিয়েন্ট ডিস্ট্রিবিউটেড ডেটাসেট নামক একটি কাঠামোতে মেমরিতে লোড করা হতো। এরপর থেকে স্পার্কের উন্নয়নে দুটি নতুন, কলাম-ভিত্তিক ডেটা টাইপ যুক্ত হয়েছে: ডেটাসেট, যা টাইপড, এবং ডেটাফ্রেম, যা আনটাইপড। সহজ ভাষায় বলতে গেলে, RDD যেকোনো ধরনের ডেটার জন্য দারুণ, যেখানে ডেটাসেট এবং ডেটাফ্রেম মূলত সারণিবদ্ধ ডেটার জন্য বিশেষভাবে তৈরি। যেহেতু ডেটাসেট শুধুমাত্র জাভা এবং স্কালা এপিআই-এর সাথে উপলব্ধ, তাই আমরা এই কোডল্যাবের জন্য পাইস্পার্ক ডেটাফ্রেম এপিআই ব্যবহার করব। আরও তথ্যের জন্য, অনুগ্রহ করে অ্যাপাচি স্পার্ক ডকুমেন্টেশন দেখুন।

৩. ব্যবহারের ক্ষেত্র

ডেটা ইঞ্জিনিয়ারদের প্রায়শই এমন ডেটার প্রয়োজন হয় যা ডেটা সায়েন্টিস্টদের কাছে সহজে অ্যাক্সেসযোগ্য। তবে, ডেটা প্রায়শই প্রাথমিকভাবে ত্রুটিপূর্ণ থাকে (এর বর্তমান অবস্থায় অ্যানালিটিক্সের জন্য ব্যবহার করা কঠিন) এবং এটিকে কার্যকরভাবে ব্যবহার করার আগে পরিষ্কার করার প্রয়োজন হয়। এর একটি উদাহরণ হলো ওয়েব থেকে স্ক্র্যাপ করা ডেটা, যেটিতে অদ্ভুত এনকোডিং বা অপ্রয়োজনীয় HTML ট্যাগ থাকতে পারে।

এই ল্যাবে, আপনি BigQuery থেকে Reddit পোস্টের আকারে এক সেট ডেটা Dataproc-এ হোস্ট করা একটি Spark ক্লাস্টারে লোড করবেন, প্রয়োজনীয় তথ্য বের করে আনবেন এবং প্রক্রিয়াজাত ডেটা জিপ করা CSV ফাইল হিসেবে Google Cloud Storage-এ সংরক্ষণ করবেন।

be2a4551ece63bfc.png

আপনার কোম্পানির প্রধান ডেটা সায়েন্টিস্ট চান যে তাদের টিমগুলো বিভিন্ন ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং সমস্যার উপর কাজ করুক। বিশেষ করে, তারা "r/food" সাবরেডিটের ডেটা বিশ্লেষণ করতে আগ্রহী। আপনি জানুয়ারি ২০১৭ থেকে আগস্ট ২০১৯ পর্যন্ত ডেটা ব্যাকফিল করার মাধ্যমে একটি ডেটা ডাম্পের জন্য একটি পাইপলাইন তৈরি করবেন।

৪. BigQuery স্টোরেজ এপিআই-এর মাধ্যমে BigQuery অ্যাক্সেস করা

ডেটার পরিমাণ বাড়ার সাথে সাথে, BigQuery থেকে tabledata.list API মেথড ব্যবহার করে ডেটা সংগ্রহ করা সময়সাপেক্ষ এবং অদক্ষ হতে পারে। এই মেথডটি JSON অবজেক্টের একটি তালিকা রিটার্ন করে এবং একটি সম্পূর্ণ ডেটাসেট পড়ার জন্য ক্রমানুসারে একবারে একটি পৃষ্ঠা করে পড়তে হয়।

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

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

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

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

7e541d932b20c074.png

2deefc9295d114ea.png

a92a49afe05008a.png

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

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

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

৬. আপনার পরিবেশ প্রস্তুত করা

এখন আপনি নিম্নলিখিত ধাপগুলো অনুসরণ করে আপনার পরিবেশ সেট আপ করবেন:

  • Compute Engine, Dataproc এবং BigQuery স্টোরেজ এপিআই সক্রিয় করা
  • প্রকল্পের সেটিংস কনফিগার করা
  • একটি ডেটাপ্রোক ক্লাস্টার তৈরি করা
  • একটি গুগল ক্লাউড স্টোরেজ বাকেট তৈরি করা

এপিআই সক্রিয় করা এবং আপনার পরিবেশ কনফিগার করা

আপনার ক্লাউড কনসোলের উপরের ডান কোণায় থাকা বাটনটি চেপে ক্লাউড শেল খুলুন।

a10c47ee6ca41c54.png

ক্লাউড শেল লোড হওয়ার পরে, Compute Engine, Dataproc এবং BigQuery Storage API-গুলো সক্রিয় করতে নিম্নলিখিত কমান্ডগুলি চালান:

gcloud services enable compute.googleapis.com \
  dataproc.googleapis.com \
  bigquerystorage.googleapis.com

আপনার প্রজেক্টের প্রজেক্ট আইডি সেট করুন। প্রজেক্ট সিলেকশন পেজে গিয়ে আপনার প্রজেক্টটি সার্চ করে আপনি এটি খুঁজে নিতে পারেন। এটি আপনার প্রজেক্টের নামের মতো নাও হতে পারে।

e682e8227aa3c781.png

76d45fb295728542.png

আপনার প্রজেক্ট আইডি সেট করতে নিম্নলিখিত কমান্ডটি চালান:

gcloud config set project <project_id>

এখানে দেওয়া তালিকা থেকে একটি বেছে নিয়ে আপনার প্রোজেক্টের অঞ্চল নির্ধারণ করুন। একটি উদাহরণ হতে পারে us-central1

gcloud config set dataproc/region <region>

আপনার ডেটাপ্রোক ক্লাস্টারের জন্য একটি নাম বাছাই করুন এবং এর জন্য একটি এনভায়রনমেন্ট ভেরিয়েবল তৈরি করুন।

CLUSTER_NAME=<cluster_name>

একটি ডেটাপ্রোক ক্লাস্টার তৈরি করা

নিম্নলিখিত কমান্ডটি চালিয়ে একটি Dataproc ক্লাস্টার তৈরি করুন:

 gcloud beta dataproc clusters create ${CLUSTER_NAME} \
     --worker-machine-type n1-standard-8 \
     --num-workers 8 \
     --image-version 1.5-debian \
     --initialization-actions gs://dataproc-initialization-actions/python/pip-install.sh \
     --metadata 'PIP_PACKAGES=google-cloud-storage' \
     --optional-components=ANACONDA \
     --enable-component-gateway

এই কমান্ডটি শেষ হতে কয়েক মিনিট সময় লাগবে। কমান্ডটি বিস্তারিতভাবে বললে:

এটি আপনার পূর্বে প্রদান করা নামে একটি ডেটাপ্রোক ক্লাস্টার তৈরির প্রক্রিয়া শুরু করবে। beta এপিআই ব্যবহার করলে ডেটাপ্রোক-এর বিটা ফিচারগুলো, যেমন কম্পোনেন্ট গেটওয়ে , সক্রিয় হবে।

gcloud beta dataproc clusters create ${CLUSTER_NAME}

এর মাধ্যমে আপনার কর্মীদের জন্য কোন ধরনের মেশিন ব্যবহার করা হবে তা নির্ধারণ করা হবে।

--worker-machine-type n1-standard-8

এর মাধ্যমে আপনার ক্লাস্টারে কর্মীর সংখ্যা নির্ধারণ করা হবে।

--num-workers 8

এটি ডেটাপ্রোকের ইমেজ ভার্সন নির্ধারণ করবে।

--image-version 1.5-debian

এটি ক্লাস্টারে ব্যবহৃত প্রারম্ভিক ক্রিয়াগুলি কনফিগার করবে। এখানে, আপনি pip প্রারম্ভিক ক্রিয়াটি অন্তর্ভুক্ত করছেন।

--initialization-actions gs://dataproc-initialization-actions/python/pip-install.sh 

এটি ক্লাস্টারে অন্তর্ভুক্ত করার জন্য মেটাডেটা। এখানে, আপনি pip ইনিশিয়ালাইজেশন অ্যাকশনের জন্য মেটাডেটা প্রদান করছেন।

--metadata 'PIP_PACKAGES=google-cloud-storage'

এটি ক্লাস্টারে ইনস্টল করার জন্য ঐচ্ছিক উপাদানগুলো নির্ধারণ করবে।

--optional-components=ANACONDA

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

--enable-component-gateway

Dataproc সম্পর্কে আরও বিস্তারিত জানতে, অনুগ্রহ করে এই কোডল্যাবটি দেখুন।

একটি গুগল ক্লাউড স্টোরেজ বাকেট তৈরি করা

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

BUCKET_NAME=<bucket_name>
gsutil mb gs://${BUCKET_NAME}

৭. অনুসন্ধানমূলক তথ্য বিশ্লেষণ

আপনার প্রিপ্রসেসিং করার আগে, আপনি যে ডেটা নিয়ে কাজ করছেন তার প্রকৃতি সম্পর্কে আপনার আরও জানা উচিত। এটি করার জন্য, আপনি ডেটা এক্সপ্লোরেশনের দুটি পদ্ধতি অন্বেষণ করবেন। প্রথমে, আপনি BigQuery Web UI ব্যবহার করে কিছু র ডেটা দেখবেন, এবং তারপরে PySpark ও Dataproc ব্যবহার করে প্রতিটি সাবরেডিটের পোস্টের সংখ্যা গণনা করবেন।

BigQuery ওয়েব UI ব্যবহার করে

আপনার ডেটা দেখার জন্য প্রথমে BigQuery Web UI ব্যবহার করুন। ক্লাউড কনসোলের মেনু আইকন থেকে নিচে স্ক্রল করুন এবং BigQuery Web UI খোলার জন্য "BigQuery" চাপুন।

242a597d7045b4da.png

এরপর, BigQuery Web UI Query Editor-এ নিম্নলিখিত কমান্ডটি চালান। এটি ২০১৭ সালের জানুয়ারি মাসের ডেটার ১০টি সম্পূর্ণ সারি ফেরত দেবে:

select * from fh-bigquery.reddit_posts.2017_01 limit 10;

b333c72d60ae6eb8.png

উপলব্ধ সমস্ত কলাম এবং কিছু উদাহরণ দেখতে আপনি পৃষ্ঠাটি স্ক্রল করতে পারেন। বিশেষ করে, আপনি দুটি কলাম দেখতে পাবেন যা প্রতিটি পোস্টের পাঠ্য বিষয়বস্তু উপস্থাপন করে: 'title' এবং 'selftext', যার মধ্যে শেষেরটি হলো পোস্টের মূল অংশ। এছাড়াও অন্যান্য কলামগুলো লক্ষ্য করুন, যেমন 'created_utc', যা হলো পোস্টটি তৈরি করার UTC সময় এবং 'subreddit', যা হলো সেই সাবরেডিট যেখানে পোস্টটি রয়েছে।

একটি পাইস্পার্ক জব সম্পাদন করা

স্যাম্পল কোড সহ রিপোটি ক্লোন করতে আপনার ক্লাউড শেলে নিম্নলিখিত কমান্ডগুলি চালান এবং সঠিক ডিরেক্টরিতে যান:

cd
git clone https://github.com/GoogleCloudPlatform/cloud-dataproc

প্রতিটি সাবরেডিটে কতগুলো পোস্ট আছে তা গণনা করতে আপনি পাইস্পার্ক (PySpark) ব্যবহার করতে পারেন। পরবর্তী ধাপে এটি কার্যকর করার আগে, আপনি ক্লাউড এডিটর (Cloud Editor) খুলে cloud-dataproc/codelabs/spark-bigquery স্ক্রিপ্টটি পড়ে নিতে পারেন:

5d965c6fb66dbd81.png

797cf71de3449bdb.png

আপনার ক্লাউড শেল-এ ফিরে যেতে ক্লাউড এডিটর-এর 'ওপেন টার্মিনাল' বোতামে ক্লিক করুন এবং আপনার প্রথম পাইস্পার্ক জবটি চালানোর জন্য নিম্নলিখিত কমান্ডটি চালান:

cd ~/cloud-dataproc/codelabs/spark-bigquery
gcloud dataproc jobs submit pyspark --cluster ${CLUSTER_NAME} \
    --jars gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar \
    --driver-log-levels root=FATAL \
    counts_by_subreddit.py

এই কমান্ডটি আপনাকে জবস এপিআই (Jobs API) ব্যবহার করে ডেটাপ্রক (Dataproc)-এ জব জমা দেওয়ার সুযোগ দেয়। এখানে আপনি জবের ধরন হিসেবে pyspark উল্লেখ করছেন। আপনি ক্লাস্টারের নাম, ঐচ্ছিক প্যারামিটার এবং জবটি ধারণকারী ফাইলের নাম সরবরাহ করতে পারেন। এখানে, আপনি --jars প্যারামিটারটি দিচ্ছেন, যা আপনাকে আপনার জবের সাথে spark-bigquery-connector অন্তর্ভুক্ত করার সুযোগ দেয়। আপনি --driver-log-levels root=FATAL ব্যবহার করে লগ আউটপুটের মাত্রা নির্ধারণ করতে পারেন, যা ত্রুটি (errors) ছাড়া অন্য সব লগ আউটপুট বন্ধ করে দেবে। স্পার্কের লগগুলো সাধারণত বেশ কোলাহলপূর্ণ হয়ে থাকে।

এটি চলতে কয়েক মিনিট সময় লাগবে এবং আপনার চূড়ান্ত আউটপুটটি দেখতে অনেকটা এইরকম হবে:

6c185228db47bb18.png

৮. ডেটাপ্রক এবং স্পার্ক ইউআই অন্বেষণ

Dataproc-এ Spark জব চালানোর সময়, আপনার জব বা ক্লাস্টারের অবস্থা পরীক্ষা করার জন্য দুটি UI-এর অ্যাক্সেস থাকে। প্রথমটি হলো Dataproc UI, যা আপনি মেনু আইকনে ক্লিক করে এবং নিচে স্ক্রল করে Dataproc পর্যন্ত গিয়ে খুঁজে পেতে পারেন। এখানে, আপনি বর্তমানে উপলব্ধ মেমরি, পেন্ডিং মেমরি এবং ওয়ার্কারের সংখ্যা দেখতে পারেন।

6f2987346d15c8e2.png

সম্পন্ন হওয়া কাজগুলো দেখতে আপনি জবস ট্যাবেও ক্লিক করতে পারেন। কোনো নির্দিষ্ট কাজের জব আইডি-তে ক্লিক করে আপনি সেই কাজের লগ এবং আউটপুটের মতো বিস্তারিত তথ্য দেখতে পারেন। 114d90129b0e4c88.png

1b2160f0f484594a.png

আপনি Spark UI-ও দেখতে পারেন। জব পেজ থেকে, ব্যাক অ্যারোতে ক্লিক করুন এবং তারপরে ওয়েব ইন্টারফেসে ক্লিক করুন। আপনি কম্পোনেন্ট গেটওয়ের অধীনে বেশ কয়েকটি অপশন দেখতে পাবেন। আপনার ক্লাস্টার সেট আপ করার সময় অপশনাল কম্পোনেন্টসের মাধ্যমে এগুলোর অনেকগুলো সক্রিয় করা যেতে পারে। এই ল্যাবের জন্য, "Spark History Server"-এ ক্লিক করুন।

5da7944327d193dc.png

6a349200289c69c1.pnge63b36bdc90ff610.png

এটি নিম্নলিখিত উইন্ডোটি খুলবে:

8f6786760f994fe8.png

সম্পন্ন হওয়া সমস্ত কাজ এখানে দেখা যাবে, এবং কাজটি সম্পর্কে আরও তথ্য জানতে আপনি যেকোনো application_id-তে ক্লিক করতে পারেন। একইভাবে, বর্তমানে চলমান সমস্ত কাজ দেখতে আপনি ল্যান্ডিং পেজের একেবারে নিচে থাকা "Show Incomplete Applications"-এ ক্লিক করতে পারেন।

৯. আপনার ব্যাকফিল কাজটি পরিচালনা করা

এখন আপনি এমন একটি জব চালাবেন যা ডেটা মেমরিতে লোড করবে, প্রয়োজনীয় তথ্য বের করবে এবং আউটপুটটি একটি গুগল ক্লাউড স্টোরেজ বাকেটে রাখবে। আপনি প্রতিটি রেডিট কমেন্টের জন্য "টাইটেল", "বডি" (মূল টেক্সট) এবং "টাইমস্ট্যাম্প ক্রিয়েটেড" বের করবেন। এরপর আপনি এই ডেটা নিয়ে, সেটিকে একটি csv ফাইলে রূপান্তর করে, জিপ করে gs://${BUCKET_NAME}/reddit_posts/YYYY/MM/food.csv.gz এই URI সহ একটি বাকেটে লোড করবেন।

আপনি cloud-dataproc/codelabs/spark-bigquery/backfill.sh এর কোডটি পড়ার জন্য আবার ক্লাউড এডিটর-এ যেতে পারেন, যেটি cloud-dataproc/codelabs/spark-bigquery/backfill.py এর কোড কার্যকর করার জন্য একটি র‍্যাপার স্ক্রিপ্ট।

cd ~/cloud-dataproc/codelabs/spark-bigquery
bash backfill.sh ${CLUSTER_NAME} ${BUCKET_NAME}

আপনি শীঘ্রই বেশ কিছু কাজ সম্পন্ন হওয়ার বার্তা দেখতে পাবেন। কাজটি সম্পন্ন হতে ১৫ মিনিট পর্যন্ত সময় লাগতে পারে। সফলভাবে ডেটা আউটপুট হয়েছে কিনা তা যাচাই করতে আপনি gsutil ব্যবহার করে আপনার স্টোরেজ বাকেটটিও পুনরায় পরীক্ষা করতে পারেন। সমস্ত কাজ সম্পন্ন হয়ে গেলে, নিম্নলিখিত কমান্ডটি চালান:

gsutil ls gs://${BUCKET_NAME}/reddit_posts/*/*/food.csv.gz

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

a7c3c7b2e82f9fca.png

অভিনন্দন, আপনি সফলভাবে আপনার রেডিট কমেন্টস ডেটার ব্যাকফিল সম্পন্ন করেছেন! এই ডেটার উপর ভিত্তি করে কীভাবে মডেল তৈরি করা যায় সে বিষয়ে আপনি যদি আগ্রহী হন, তবে অনুগ্রহ করে স্পার্ক-এনএলপি কোডল্যাবে যান।

১০. পরিচ্ছন্নতা

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

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

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

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

লাইসেন্স

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