আরডিডি স্পার্ক ব্যবহার করে: অ্যাপাচি স্পার্কের বিল্ডিং ব্লক



স্পার্ক ব্যবহার করে আরডিডি-র এই ব্লগটি আপনাকে আরডিডি সম্পর্কিত একটি বিশদ এবং ব্যাপক জ্ঞান সরবরাহ করবে, যা স্পার্কের মৌলিক একক এবং এটি কতটা কার্যকর useful

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

আরডিডি দরকার?

আমাদের কেন আরডিডি দরকার? স্পার্ক ব্যবহার করে আরডিডি দরকার





বিশ্বের সাথে বিবর্তিত হচ্ছে এবং তথ্য বিজ্ঞান কারণ অগ্রগতি অ্যালগরিদম ভিত্তিক রিগ্রেশন , , এবং যা চলমান বিতরণ Iterative গণনা ation ফ্যাশন যাতে একাধিক কম্পিউটিং ইউনিটগুলির মধ্যে ডেটা পুনঃব্যবহার এবং ভাগ করে নেওয়া অন্তর্ভুক্ত।

ঐতিহ্যগত কৌশলগুলির জন্য একটি স্থিতিশীল মধ্যবর্তী এবং বিতরণযোগ্য স্টোরেজ দরকার needed এইচডিএফএস ডেটা প্রতিলিপি এবং ডেটা সিরিয়ালাইজেশনের সাথে পুনরাবৃত্তিমূলক গণনা সমন্বিত, যা প্রক্রিয়াটি অনেক ধীর করে তুলেছিল। সমাধান সন্ধান করা কখনই সহজ ছিল না।



এটাই যেখানে আরডিডি (রেসিলেেন্ট ডিস্ট্রিবিউটড ডেটাসেটস) আসে বড় ছবিতে।

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



যদি কোন তথ্য বিভাজন এর আরডিডি হ'ল নিখোঁজ , এটি প্রয়োগ করে এটি পুনরায় জেনারেট করা যেতে পারে রূপান্তর যে হারানো পার্টিশনের মধ্যে অপারেশন বংশ স্ক্র্যাচ থেকে সমস্ত ডেটা প্রক্রিয়া করার চেয়ে rather রিয়েল টাইম পরিস্থিতিতে এই ধরণের পদ্ধতির ডেটা হ্রাসের পরিস্থিতিতে বা কোনও সিস্টেম ডাউন থাকা অবস্থায় অলৌকিক ঘটনা ঘটতে পারে।

আরডিডি কি?

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

আরডিডি-তে লিখিত ডেটা হ'ল বিভক্ত এবং মধ্যে সঞ্চিত একাধিক এক্সিকিউটেবল নোড যদি একটি এক্সিকিউটিভ নোড ব্যর্থ রান সময়ে, তারপরে এটি তাত্ক্ষণিকভাবে ব্যাক আপটি পেয়ে যায় পরবর্তী এক্সিকিউটেবল নোড । আর এ কারণেই অন্যান্য sতিহ্যবাহী ডেটা স্ট্রাকচারের তুলনায় আরডিডিগুলিকে একটি উন্নত ধরণের ডেটা স্ট্রাকচার হিসাবে বিবেচনা করা হয়। আরডিডিগুলি কাঠামোগত, কাঠামোগত এবং আধা-কাঠামোগত ডেটা সঞ্চয় করতে পারে।

আসুন স্পার্ক ব্লগ ব্যবহার করে আমাদের আরডিডি নিয়ে এগিয়ে চলুন এবং আরডিডিগুলির অনন্য বৈশিষ্ট্যগুলি সম্পর্কে জেনে থাকি যা এটি অন্যান্য ধরণের ডেটা স্ট্রাকচারের চেয়ে একটি প্রান্ত দেয়।

আরডিডি এর বৈশিষ্ট্যসমূহ

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

স্পার্ক ব্যবহার করে আরডিডি তৈরি করা

আরডিডিগুলি তৈরি করা যেতে পারে তিনটি উপায়:

  1. থেকে ডেটা পড়া সমান্তরাল সংগ্রহ
ভাল পিসিআরডিডি = স্পার্ক.স্পার্ককন্টেক্সট.প্যারালাইলাইজ (অ্যারে ('সোম', 'মঙ্গল', 'বুড়', 'থু', 'শুক্র', 'সত'), ২) ভাল ফলাফলআরডিডি = পিসিআরডিডি.কলেক্ট () ফলাফলআরডিডি.কলেক্ট ( ) .ফেলা (মুদ্রণ)
  1. আবেদন করা হচ্ছে রূপান্তর পূর্ববর্তী আরডিডিগুলিতে
ভাল শব্দ = স্পার্ক.স্পার্ক কনটেক্সট.প্যাটারেলাইজ (সেক ('স্পার্ক', 'হ'ল', 'এ', 'খুব', 'শক্তিশালী', 'ভাষা')) ভাল ওয়ার্ডপায়ার = words.map (w = (w.charAt ( 0), w)) ওয়ার্ডপায়ার.কলেক্ট করুন ()। ফোরচ (প্রিন্টলন)
  1. থেকে ডেটা পড়া বহিরাগত সংগ্রহস্থল অথবা ফাইলের মতো পাথ এইচডিএফএস বা এইচবেস
ভাল স্পার্কফাইল = স্পার্ক.ড্রেড.টেক্সটফিল ('/ ব্যবহারকারী / এডুরিকা_566977 / স্পার্ক / স্পার্ক.টেক্সট।') স্পার্কফাইল.কলেক্ট ()

আরডিডিগুলিতে পরিচালিত অপারেশনগুলি:

আরডিডিগুলিতে সাধারণত দুটি ধরণের অপারেশন করা হয়:

  • রূপান্তর
  • ক্রিয়া

রূপান্তর : দ্য অপারেশন আমরা আরডিডিগুলিতে আবেদন করি ফিল্টার, অ্যাক্সেস এবং পরিবর্তন করুন প্যারেন্ট আরডিডি-তে ডেটা তৈরি করতে একটি ধারাবাহিক আরডিডি বলা হয় রূপান্তর । নতুন আরডিডি পূর্ববর্তী আরডিডি-র মধ্যে নির্ভরতা নিশ্চিত করে একটি পয়েন্টার দেয়।

রূপান্তর হয় অলস মূল্যায়ন, অন্য কথায়, আপনি যে আরডিডিতে কাজ করছেন তার উপর প্রয়োগ করা অপারেশনগুলি লগ করা হবে তবে তা নয় নিষ্পন্ন. সিস্টেমটি ট্রিগার করার পরে একটি ফলাফল বা ব্যতিক্রম ছুঁড়ে কর্ম

আমরা ট্রান্সফর্মেশনগুলিকে নীচে হিসাবে দুটি প্রকারে বিভক্ত করতে পারি:

  • সংকীর্ণ রূপান্তর
  • প্রশস্ত রূপান্তর

সংকীর্ণ রূপান্তর আমরা একটিতে সংকীর্ণ রূপান্তরকরণ প্রয়োগ করি একক বিভাজন আরডিডি প্রসেস করার জন্য প্রয়োজনীয় ডেটা হিসাবে একটি নতুন আরডিডি উত্পন্ন করতে পিতামাতার আরডিডি-র একক পার্টিশনে উপলব্ধ পিতা বা মাতা এএসডি । সংকীর্ণ রূপান্তরের উদাহরণগুলি হ'ল:

  • মানচিত্র ()
  • ছাঁকনি()
  • সমতল মানচিত্র()
  • বিভাজন ()
  • মানচিত্রের বিভাগগুলি ()

প্রশস্ত রূপান্তর: আমরা বিস্তৃত রূপান্তরটি প্রয়োগ করি একাধিক পার্টিশন একটি নতুন আরডিডি তৈরি করতে। আরডিডি প্রক্রিয়া করার জন্য প্রয়োজনীয় ডেটা একাধিক পার্টিশনে পাওয়া যায় পিতা বা মাতা এএসডি । বিস্তৃত রূপান্তরের উদাহরণগুলি হ'ল:

  • হ্রাস দ্বারা ()
  • মিলন()

ক্রিয়া : ক্রিয়াগুলি অ্যাপাচি স্পার্ক প্রয়োগ করার নির্দেশ দেয় গণনা এবং ফলাফল আর ব্যতিক্রমটি ড্রাইভার আরডিডি-তে ফেরত দিন। কয়েকটি অ্যাকশন অন্তর্ভুক্ত:

কিভাবে জাভাতে একটি প্রোগ্রাম শেষ
  • সংগ্রহ ()
  • গণনা ()
  • গ্রহণ করা()
  • প্রথম ()

আসুন আমরা ব্যবহারিকভাবে আরডিডিগুলিতে অপারেশনগুলি প্রয়োগ করি:

আইপিএল (ইন্ডিয়ান প্রিমিয়ার লিগ) এটি একটি ক্রিকেট টুর্নামেন্ট যা এটি শীর্ষ স্তরে হিপযুক্ত। সুতরাং, আসুন আমরা আজ আইপিএল ডেটা সেটটিতে হাত পেতে পারি এবং স্পার্কটি ব্যবহার করে আমাদের আরডিডি চালায়।

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

পরবর্তী পদক্ষেপে, আমরা স্পার্কটি জ্বালিয়ে দেব এবং ম্যাচস সিএসভি ফাইলটিকে তার অবস্থান থেকে লোড করি, আমার ক্ষেত্রে আমারসিএসভিফাইল অবস্থান '/ ব্যবহারকারীর / অ্যাডুরিকা_5669777777/ / সবচেয়ে বেশি / ম্যাচস সিএসভি'

এখন আমাদের দিয়ে শুরু করা যাক রূপান্তর প্রথম অংশ:

  • মানচিত্র ():

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

স্পার্ক 2-শেল ভাল সি কেফিল = sc.textFile ('/ ব্যবহারকারীর / edureka_566977 / পরীক্ষা / ম্যাচস.সিভি') CKfile.collect.foreach (মুদ্রণ) ভাল রাজ্যগুলি = সি কেফিল.ম্যাপ (_। বিভক্ত (',') (2)) state.collect ()। পূর্বাভাস (মুদ্রণ)

  • ছাঁকনি():

ফিল্টার রূপান্তর, নাম নিজেই এর ব্যবহার বর্ণনা করে। আমরা প্রদত্ত ডেটা সংগ্রহের বাইরে নির্বাচনী ডেটা ফিল্টার করতে এই রূপান্তর অপারেশনটি ব্যবহার করি। আমরা আবেদন করি ফিল্টার অপারেশন বছরের আইপিএল ম্যাচের রেকর্ড পেতে এখানে 2017 এবং এটি আরডিডি ফিল্ডে সঞ্চয় করুন।

ভাল ফিল = সি কেফিল.ফিল্টার (লাইন => লাইন.কন্টেইনস ('2017')) ফিলকোলেক্ট ()। ফোরচ (প্রিন্টলন)

  • সমতল মানচিত্র():

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

ভাল ফিলআরডিডি = ফিল্টফ্যাপম্যাপ (লাইন => লাইন.স্প্লিট ('হায়দরাবাদ')) সংগ্রহ করুন)

  • বিভাজন ():

আমরা আরডিডি-তে যে সমস্ত ডেটা লিখি তা পার্টিশনের একটি নির্দিষ্ট সংখ্যায় বিভক্ত। আমরা এটির জন্য এই রূপান্তরটি ব্যবহার করি পার্টিশনের সংখ্যা তথ্য আসলে বিভক্ত হয়।

ভাল ফিল = সি কেফিল.ফিল্টার (লাইন => লাইনকন্টেনস ('2017')) fil.partitions.size

  • মানচিত্রের বিভাগগুলি ():

আমরা মানচিত্রের মানচিত্র () এবং এর বিকল্প হিসাবে মানচিত্রকে বিবেচনা করিপ্রতিটির জন্য, প্রত্যেকটির জন্য() একসাথে। আমরা এটির জন্য মানচিত্রের পার্টিশনগুলি এখানে ব্যবহার করি সারির সংখ্যা আমরা আমাদের ফাইল আরডিডি আছে।

ভাল ফিল = সি কেফিল.ফিল্টার (লাইন => লাইন.কন্টেনস ('২০১' ')) fil.map পার্টিশন (idx => অ্যারে (idx.size) .iterator) .কলেক্ট করুন

  • কমিয়ে দেওয়া ():

আমরা ব্যাবহার করিকমানো() চালু কী-মান জোড়া । আমরা আমাদের উপর এই রূপান্তর ব্যবহারসিএসভিফাইলটি প্লেয়ারের সাথে খেলোয়াড়ের জন্য ম্যাচ সেরা

ভাল মানঅফথম্যাচ = সি কেফিল.ম্যাপ (_। বিভক্ত (',') ((13)) ভাল এমওটিমেকাউন্ট = মানঅফথম্যাচ.ম্যাপ (উইনকাউন্ট => (উইনকাউন্ট, 1)) ভাল মানোথ = এমওটিম্যাকউন্ট.ড্রেসবিকি ((এক্স, ওয়াই) => এক্স + y) .ম্যাপ (tup => (tup._2, tup._1)) সাজ্টবাইকে (মিথ্যা) ManOTH.take (10)। ফোরচ (মুদ্রণ)

  • মিলন():

নামটি সমস্ত ব্যাখ্যা করে, আমরা ইউনিয়নের রূপান্তরকরণটি ব্যবহার করি একসাথে দুটি আরডিডি ক্লাব । এখানে আমরা দুটি আরডিডি তৈরি করছি যথা ফাইল এবং ফাইল 2। ফিল আরডিডিতে 2017 আইপিএল ম্যাচের রেকর্ড রয়েছে এবং ফিল 2 আরডিডিতে 2016 আইপিএল ম্যাচের রেকর্ড রয়েছে।

ভাল ফিল = সি কেফিল.ফিল্টার (লাইন => লাইন.কন্টেইনস ('2017')) ভাল ফিল2 = সি কেফিল.ফিল্টার (লাইন => লাইন.কন্টেইনস ('2016')) ভাল আনআরডিডি = ফাইল.উনিয়ন (ফাইল 2)

আমাদের দিয়ে শুরু করা যাক কর্ম অংশ যেখানে আমরা প্রকৃত আউটপুট দেখায়:

  • সংগ্রহ ():

সংগ্রহ হ'ল আমরা যে ক্রিয়াটি ব্যবহার করি বিষয়বস্তু প্রদর্শন করুন আরডিডিতে।

ভাল CKfile = sc.textFile ('/ ব্যবহারকারী / edureka_566977 / পরীক্ষা / ম্যাচস.সিভি') CKfile.collect.foreach (প্রিন্টলন)

  • গণনা ():

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

ভাল সি কেফাইল = sc.textFile ('/ ব্যবহারকারী / edureka_566977 / পরীক্ষা / ম্যাচস.এসভি') CKfile.count ()

  • গ্রহণ করা():

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

val statecountm = Scount.reduceByKey ((x, y) => x + y) .map (tup => (tup._2, tup._1)) sortByKey (false) statecountm.collect ()। foreach (println) statecountm। (10) নিন। ফোরচ (মুদ্রণ)

  • প্রথম ():

প্রথম () হ'ল সংগ্রহ () সংগ্রহ এবং গ্রহণের মতোই একটি ক্রিয়া ক্রিয়াকলাপএটাশীর্ষস্থানীয় প্রতিবেদনটি আউটপুট প্রিন্ট করতে ব্যবহৃত হয় আমরা এটি সন্ধানের জন্য প্রথম () অপারেশনটি ব্যবহার করি একটি নির্দিষ্ট শহরে সর্বাধিক সংখ্যক ম্যাচ খেলেছে এবং আমরা আউটপুট হিসাবে মুম্বাই পেতে।

ভাল CKfile = sc.textFile ('/ ব্যবহারকারী / edureka_566977 / পরীক্ষা / ম্যাচস.সিভি') ভাল স্টেটস = CKfile.map (_। বিভক্ত (',') (2)) ভাল স্ক্যান্ট = state.map (স্কাউন্ট => ( স্ক্যান্ট, ১)) স্কেল এবং জিটি ভ্যাল স্টেটকাউন্ট = স্কাউন্ট.ড্রেসবাইকি ((x, y) => x + y) .collect.foreach (প্রিন্টলন) Scount.reduceByKey ((x, y) => x + y) .collect.foreach (println) ভাল statecountm = Scount.reduceByKey ((x, y) => x + y) .map (tup => (tup._2, tup._1)) সর্টবাই (মিথ্যা) statecountm.first ()

আমাদের প্রক্রিয়াটি স্পার্কটি ব্যবহার করে আমাদের শেখার আরডিডি করতে, আরও আকর্ষণীয়, আমি একটি আকর্ষণীয় ব্যবহারের ক্ষেত্রে হাজির হয়েছি।

স্পার্ক ব্যবহার করে আরডিডি: পোকেমন ইউজ কেস

  • প্রথমত, আসুন আমরা একটি পোকেমন সিএসভি ফাইল ডাউনলোড করি এবং ম্যাচস সিএসভি ফাইলের মতো এটি স্পার্ক-শেলটিতে লোড করি।
ভাল পোকেমনডাটাআরডিডি 1 = sc.textFile ('/ ব্যবহারকারী / এডুরিকা_566977 / পোকেমনফাইল / পোকেমনডাটা সিএসভি') পোকেমনডাটাআরডিডি 1 কোলক ()। ফোরচ (প্রিন্টলন)

পোকেমনস আসলে একটি বিভিন্ন ধরণের পাওয়া যায়, আসুন কয়েকটি প্রকারের সন্ধান করি।

  • পোকেমন.সিএসভি ফাইল থেকে স্কিমা সরানো হচ্ছে

আমাদের দরকার নেই স্কিমা Pokemon.csv ফাইলের। সুতরাং, আমরা এটি অপসারণ।

ভাল হেড = পোকেমনডেটাআরডিডি 1.ফায়ার্ট () ভাল নোহিডার = পোকেমনডাটাআরডিডি 1.ফিল্টার (লাইন =>! লাইন.ইকুয়ালস (হেড))

  • সংখ্যাটি সন্ধান করা হচ্ছে পার্টিশন আমাদের pokemon.csv এর মধ্যে বিতরণ করা হয়েছে।
println ('No.ofpartitions =' + NoHeader.partitions.size)

  • জলের পোকেমন

সন্ধান করা জল পোকেমন সংখ্যা

ভাল ওয়াটারআরডিডি = পোকেমনডেটাআরডিডি 1.ফিল্টার (লাইন => লাইন.কন্টেনস ('জল')) ওয়াটারআরডিডি.কোলেক্ট ()। ফোরচ (প্রিন্টলন)

  • আগুন পোকেমন

সন্ধান করা ফায়ার পোকেমন সংখ্যা

ভাল ফায়ারআরডিডি = পোকেমনডেটাআরডিডি 1.ফিল্টার (লাইন => লাইন.কন্টেনস ('ফায়ার')) ফায়ারআরডিডি.কোলেক্ট ()। ফোরচ (প্রিন্টলন)

  • আমরা এটিও সনাক্ত করতে পারি জনসংখ্যা গণনা ফাংশন ব্যবহার করে বিভিন্ন ধরণের পোকেমন of
ওয়াটারআরডিডি.কাউন্ট () ফায়ারআরডিডি.কাউন্ট ()

  • যেহেতু আমি খেলাটি পছন্দ করি প্রতিরক্ষামূলক কৌশল আমাদের সাথে পোকেমন সন্ধান করা যাক সর্বোচ্চ প্রতিরক্ষা।
ভাল DefenceList = NoHeader.map {x => x.split (',')}। মানচিত্র {x => (x (6)। টুডাবল)} প্রিন্টলন ('সর্বোচ্চতম_পরিচালনা:' + DefenceList.max ())

  • আমরা সর্বোচ্চ জানি প্রতিরক্ষা শক্তি মান তবে আমরা জানি না এটি কোন পোকেমন। সুতরাং, আসুন আমরা এটি আবিষ্কার করি পোকেমন
ভাল DefWithPokemonName = NoHeader.map {x => x.split (',')}। মানচিত্র {x => (x (6) .toDouble, x (1))} ভাল ম্যাক্সডেফেন্সপোকমন = DefWithPokemonName.groupByKey.takeOrdd (1) (অর্ডার [ডাবল]। রিভার্স.অন (_._ 1)) ম্যাক্সডেফেন্সপোকেন.ফৌচ (প্রিন্টলন)

  • এবার আসুন পোকেমন দিয়ে বাছাই করা যাক কমপক্ষে প্রতিরক্ষা
val minDefencePokemon = DefenceList.distinct.sortBy (x => x.toDouble, true, 1) minDefencePokemon.take (5) .ফেরোচ (প্রিন্টলন)

  • এখন আসুন একটি সঙ্গে পোকেমন দেখতে কম প্রতিরক্ষা কৌশল।
ভাল পোকেমনডাটাআরডিডি 2 = sc.textFile ('/ ব্যবহারকারী / এডুরিকা_566977 / পোকেমনফাইল / পোকেমনডাটা.সিএসভি') ভাল হেড 2 = পোকেমনডেটাআরডিডি 2.ফিল্টার () ভাল নোহাইডার 2 = পোকেমনডেটাআরডিডি 2.ফিল্টার (লাইন =>!) .map {x => x.split (',')}। মানচিত্র {x => (x (6) .toDouble, x (1)) Min মান MinDefencePokemon2 = DefWithPokemonName2.groupByKey.take অর্ডার (1) (অর্ডার [দ্বিগুণ ] .অন (_._ 1)) মিনিডেফেন্সপোকমন 2.ফরোচ (মুদ্রণ)

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

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