में मैं SQL जैसी IN
खंड के साथ एक Pyspark DataFrame फ़िल्टर करना चाहते हैं एक Pyspark DataFrame फ़िल्टर करना, साथ SQL जैसी खंड
sc = SparkContext()
sqlc = SQLContext(sc)
df = sqlc.sql('SELECT * from my_df WHERE field1 IN a')
जहां a
टपल (1, 2, 3)
है के रूप में।
java.lang.RuntimeException: [1.67] failure: ``('' expected but identifier a found
जो मूल रूप से कह रहा है यह की तरह कुछ उम्मीद कर रहा था '(1, 2, 3)' एक के बजाय: मैं इस त्रुटि हो रही है। समस्या यह है कि मैं मूल्यों को मैन्युअल रूप से लिख नहीं सकता क्योंकि यह किसी अन्य नौकरी से निकाला गया है।
मैं इस मामले में कैसे फ़िल्टर करूं?
दूसरी विधि के लिए, आप ऐसा करके ही प्राप्त कर सकते हैं हम भी (न केवल
set
) की तरह एक सूची का उपयोग कर एक ही बात कर सकते हैं df.where (df.v.isin ({"foo", "bar"}))। गिनती() –आप कर सकते हैं, लेकिन व्यक्तिगत रूप से मुझे यह दृष्टिकोण पसंद नहीं है। 'Col' के साथ मैं आसानी से एसक्यूएल अभिव्यक्ति और विशेष' डेटाफ्रेम 'ऑब्जेक्ट को कम कर सकता हूं। तो आप उदाहरण के लिए उपयोगी अभिव्यक्तियों का एक शब्दकोश रख सकते हैं और जब आपको आवश्यकता हो तो उन्हें चुनें। स्पष्ट डीएफ ऑब्जेक्ट के साथ आपको इसे एक फ़ंक्शन के अंदर रखना होगा और यह अच्छी तरह से लिख नहीं सकता है। – zero323