मैं स्काला और स्पार्क के लिए बहुत नया हूं, और बेसबॉल आंकड़ों का उपयोग करके कुछ स्व-निर्मित अभ्यासों पर काम कर रहा हूं। मैं एक केस क्लास का उपयोग कर रहा हूँ, एक RDD बनाएँ और डेटा को एक स्कीमा असाइन करें, और फिर इसे एक DataFrame में बदल रहा हूँ, इसलिए मैं स्पार्कक्यूडी का उपयोग अपने आँकड़ों के माध्यम से खिलाड़ियों के समूहों का चयन करने के लिए कर सकता हूँ जो कुछ मानदंडों को पूरा करते हैं।
एक बार जब मेरे पास उन खिलाड़ियों का सबसेट होता है जिन्हें मैं आगे देखने में दिलचस्पी रखता हूं, तो मैं एक स्तंभ का मतलब ढूंढना चाहता हूं; जैसे बल्लेबाजी औसत या आरबीआई। वहां से मैं सभी खिलाड़ियों की तुलना में अपने औसत प्रदर्शन के आधार पर सभी खिलाड़ियों को प्रतिशत समूहों में तोड़ना चाहूंगा; शीर्ष 10%, नीचे 10%, 40-50%
मैं हालांकि सभी स्ट्रिंग के रूप में वांछित कॉलम (मतलब, stddev, count, min, और max) का सारांश वापस करने के लिए DataFrame.describe () फ़ंक्शन का उपयोग करने में सक्षम रहा हूं। क्या डबल्स के रूप में सिर्फ माध्य और 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
) कर सकते हैं , लेकिन तेज़ विकल्प हो सकते हैं।