আমার কাছে একটি বড় ডেটাসেট রয়েছে যা নির্দিষ্ট পরামিতি অনুসারে আমাকে গ্রুপে বিভক্ত করতে হবে। আমি চাই চাকরিটি যথাসম্ভব দক্ষতার সাথে প্রক্রিয়াজাত করা হোক। আমি এটি করার দুটি উপায় কল্পনা করতে পারি
বিকল্প 1 - মূল আরডিডি এবং ফিল্টার থেকে মানচিত্র তৈরি করুন
def customMapper(record):
if passesSomeTest(record):
return (1,record)
else:
return (0,record)
mappedRdd = rddIn.map(lambda x: customMapper(x))
rdd0 = mappedRdd.filter(lambda x: x[0]==0).cache()
rdd1 = mappedRdd.filter(lambda x: x[1]==1).cache()
বিকল্প 2 - সরাসরি আরডিডি ফিল্টার করুন
def customFilter(record):
return passesSomeTest(record)
rdd0 = rddIn.filter(lambda x: customFilter(x)==False).cache()
rdd1 = rddIn.filter(customFilter).cache()
মুষ্টি পদ্ধতিতে 3 বার মূল ডেটা সেট করা সমস্ত রেকর্ডের উপর ক্ষয় করতে হয়, যেখানে দ্বিতীয়টি সাধারণত দু'বার করতে হয়, সাধারণ পরিস্থিতিতে, তবে, স্পার্ক কিছুটা পর্দার আড়ালে গ্রাফ বিল্ডিং করে, তাই আমি কল্পনা করতে পারি যে সেগুলি কার্যকরভাবে একইভাবে সম্পন্ন। আমার প্রশ্নগুলি হ'ল: ক।) একটি পদ্ধতি কি অন্যের চেয়ে বেশি দক্ষ, বা স্পার্ক গ্রাফ বিল্ডিং তাদের সমতুল্য করে তোলে খ।) একক পাসে এই বিভাজন করা কি সম্ভব?