मैंने पायथन में वर्गीकृत को लागू करने वाली कक्षा लिखी है। मैं इस वर्गीकृत का उपयोग कर बड़ी संख्या में डेटापॉइंट्स के वर्गीकरण को समानांतर करने के लिए अपाचे स्पार्क का उपयोग करना चाहता हूं।अपाचे स्पार्क (pyspark) के साथ कस्टम कक्षाओं का उपयोग कैसे करें?
- मैं 10 स्लेव के साथ क्लस्टर पर अमेज़ॅन ईसी 2 का उपयोग करके स्थापित किया गया है, जो उस पर पाइथन के एनाकोंडा वितरण के साथ आता है। अमी मुझे दूरस्थ रूप से आईपीथन नोटबुक का उपयोग करने देता है।
- मैं परिभाषित किया है एक फ़ाइल में वर्ग BoTree में फ़ोल्डर /root/anaconda/lib/python2.7/ मास्टर जो वह जगह है जहाँ अपने सभी अजगर मॉड्यूल
- मुझे लगता है कि देख लिया है कर रहे हैं पर BoTree.py फोन मैं मास्टर से कमांड लाइन स्पार्क चलाते समय BoTree.py आयात और उपयोग कर सकता हूं (मुझे केवल आयात बोट्री लिखना शुरू करना है और मेरी कक्षा बोटीरी
- मैंने स्पार्क/रूट/स्पार्क-ec2/copy-dir का उपयोग किया है .sh स्क्रिप्ट मेरे क्लस्टर में /python2.7/ निर्देशिका की प्रतिलिपि बनाने के लिए।
- मैंने दासों में से एक में एसएसएच-एड किया है और वहां आईपीथॉन चलाने की कोशिश की है, और बोटीरी आयात करने में सक्षम था, इसलिए मुझे लगता है कि मॉड्यूल रहा है क्लस्टर में सफलतापूर्वक भेजा गया (मैं BoTree.py फ़ाइल को .../python2.7 में भी देख सकता हूं/फ़ोल्डर)
- मास्टर पर मैंने जांच की है कि मैं सीपीकल का उपयोग करके एक बोटीरी इंस्टेंस को अचार और अनपिक कर सकता हूं, जिसे मैं समझता हूं कि पाइस्पार्क का सीरियलाइज़र है।
हालांकि, जब मैं निम्न कार्य करें:
File "/root/spark/python/pyspark/worker.py", line 90, in main
command = pickleSer.loads(command.value)
File "/root/spark/python/pyspark/serializers.py", line 405, in loads
return cPickle.loads(obj)
ImportError: No module named BoroughTree
किसी को भी मेरी मदद कर सकते:
import BoTree
bo_tree = BoTree.train(data)
rdd = sc.parallelize(keyed_training_points) #create rdd of 10 (integer, (float, float) tuples
rdd = rdd.mapValues(lambda point, bt = bo_tree: bt.classify(point[0], point[1]))
out = rdd.collect()
स्पार्क त्रुटि (सिर्फ प्रासंगिक बिट मुझे लगता है कि) के साथ विफल रहता है? कुछ हद तक हताश ...
धन्यवाद
इस के लिए धन्यवाद। मैं पाइथन इंटरैक्टिव रूप से उपयोग कर रहा हूं, इसलिए मैं स्पार्ककॉन्टेक्स्ट सेट नहीं कर सकता। मैं इस मामले में pyFiles के बराबर कैसे करूँ? मैंने एक फ़ंक्शन को परिभाषित किया है जो sys आयात करता है और फिर sys.executable देता है। मुझे लगता है कि यह मुझे बता रहा है कि मेरे सभी गुलाम एनाकोंडा चला रहे हैं। हालांकि, अगर मैं उनमें शामिल हूं तो मैं देख सकता हूं कि पर्यावरण परिवर्तनीय PYSPARK_PYTHON सेट नहीं है। मैं अपने दासों पर पायथनपैट कैसे संपादित कर सकता हूं? – user3279453
वास्तव में आप एक इंटरैक्टिव मोड में स्पार्ककॉन्टेक्स्ट बना सकते हैं। इसके बारे में कुछ विवरण और 'PYSPARK_PYTHON' चर – zero323