আমি স্কালা এবং স্পার্কে খুব নতুন, এবং বেসবলের পরিসংখ্যান ব্যবহার করে কিছু স্ব-তৈরি মহড়া নিয়ে কাজ করছি। আমি কেস ক্লাসটি একটি আরডিডি তৈরি করে ডেটাতে একটি স্কিমা বরাদ্দ করছি এবং এরপরে এটি একটি ডেটা ফ্রেমে রূপান্তর করছি যাতে আমি নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন স্টাটগুলির মাধ্যমে খেলোয়াড়দের গ্রুপ নির্বাচন করতে স্পার্কএসকিউএল ব্যবহার করতে পারি।
আমি যখন আরও খেলোয়াড়দের সাবসেটটি পেয়েছি তখন আমি আরও দেখার আগ্রহী, আমি একটি কলামের গড়টি খুঁজে পেতে চাই; যেমন ব্যাটিং গড় বা আরবিআই। সেখান থেকে আমি সমস্ত খেলোয়াড়কে সব খেলোয়াড়ের তুলনায় তাদের গড় পারফরম্যান্সের ভিত্তিতে পারসেন্টাইল গ্রুপে বিভক্ত করতে চাই; শীর্ষ 10%, নীচে 10%, 40-50%
যদিও আমি পছন্দসই কলামের একটি সংক্ষিপ্তসার (অর্থাত্ stddev, গণনা, সর্বনিম্ন এবং সর্বোচ্চ) সমস্ত স্ট্রিং হিসাবে ফেরত দিতে ডেটা ফ্রেম.ডেস্ক্রিপ () ফাংশনটি ব্যবহার করতে সক্ষম হয়েছি। দ্বিগুণ হিসাবে কেবল গড় এবং এসডিডিভির আরও ভাল উপায় কি এবং খেলোয়াড়দের 10-পার্সেন্টাইল গ্রুপে ভাঙার সর্বোত্তম উপায় কী?
আমার চিন্তাভাবনাগুলি এখন পর্যন্ত সেই মানগুলি খুঁজে বের করে যা পারসেন্টাইল রেঞ্জগুলিকে বাড়িয়ে তোলে এবং এমন একটি ফাংশন লিখে থাকে যা খেলোয়াড়কে তুলনাকারীদের দ্বারা গোষ্ঠীভূত করে, তবে মনে হয় এটি হুইলটিকে পুনরায় উদ্দীপনার সাথে সীমাবদ্ধ করছে।
আমার কাছে বর্তমানে নিম্নলিখিত আমদানি রয়েছে:
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}
import org.joda.time.format.DateTimeFormat
not found: value avg
এবংnot found: value max
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}
import org.joda.time.format.DateTimeFormat
org.apache.spark.sql.functions._
হবে। (বিটিডব্লিউ .: আমি মনে করি অতিরিক্ত তথ্যটি নিজেই প্রশ্নটিতে আরও যুক্ত হয়েছে এবং সম্পাদনার পরে কোনও মন্তব্য যোগ করা যথেষ্ট))
.agg(avg(people("salary")), max(people("age")))
। বাছাইয়ের মাধ্যমে আপনি পার্সেন্টাইলগুলি সম্ভবত খুঁজে পেতে (ব্যবহারskip
এবং করতে পারেনtake
) তবে দ্রুততর বিকল্প থাকতে পারে।