2016-03-01 10 views
5

मैं एक स्पार्क DataFrame रूपPyspark DataFrame में चुना पंक्ति से विशिष्ट क्षेत्र हो रही

sc = SparkContext() 
sqlc = SQLContext(sc) 

users_df = sqlc.read.json('users.json') 

pyspark के माध्यम से बनाया गया एक JSON फ़ाइल से अब है, मैं, एक chosen_user डेटा का उपयोग करना चाहते हैं, जहां यह है इसके _id फ़ील्ड मैं

print users_df[users_df._id == chosen_user].show() 

और यह मुझे उपयोगकर्ता की पूरी पंक्ति देता है। लेकिन मान लीजिए कि मैं पंक्ति में एक विशिष्ट फ़ील्ड चाहता हूं, उपयोगकर्ता लिंग कहूं, मैं इसे कैसे प्राप्त करूं?

+0

क्या एकाधिक 'चुने गए_यूसर' मानों के आधार पर पंक्तियों को निकालना संभव है और केवल एक ही नहीं? – Nivi

उत्तर

13

बस को फ़िल्टर और का चयन करें:

result = users_df.where(users_df._id == chosen_user).select("gender") 

या col

from pyspark.sql.functions import col 

result = users_df.where(col("_id") == chosen_user).select(col("gender")) 

साथ अंत में PySpark बस कुछ एक्सटेंशन के साथ एक tuple उदाहरण flatMap के लिए है, तो आप कर सकते हैं:

result.rdd.flatMap(list).first() 

या map इस तरह कुछ के साथ:

result.rdd.map(lambda x: x.gender).first() 
+0

क्या आप वास्तविक मूल्य निकालने और एक चर में डाल सकते हैं पर भी टिप्पणी कर सकते हैं? आपके समाधान के साथ मुझे अंत में एक 'संग्रह' चलाने पर [पंक्ति (लिंग = u'male ')] मिलता है। मैं वास्तव में 'नर' को एक चर में डाल देना चाहता हूं। –

+0

निश्चित रूप से। कृपया संपादन की जांच करें। – zero323

+0

बिल्कुल सही, बहुत बहुत धन्यवाद। –

संबंधित मुद्दे