2015-12-21 5 views
5

मेरा लक्ष्य फ़ाइल मेरी चिंगारी आवेदन में फ़ाइल और कॉल कार्यों में से कुछ है कि फाइलPyspark आयात .py काम नहीं कर रहा

यहाँ के अंदर शामिल .py एक कस्टम आयात करने के लिए है कि मैं क्या करने की कोशिश की है:

मेरे पास है एक परीक्षण फ़ाइल कहा जाता Test.py जो इस प्रकार है:

def func(): 
    print "Import is working" 

मेरी स्पार्क आवेदन के अंदर मैं क्या निम्नलिखित (डॉक्स में वर्णित है):

sc = SparkContext(conf=conf, pyFiles=['/[AbsolutePathTo]/Test.py']) 

मैं भी इस के बजाय की कोशिश की (के बाद स्पार्क संदर्भ बनाई गई है):

./bin/spark-submit --packages com.datastax.spark:spark-cassandra-connector_2.10:1.5.0-M2 --py-files /[AbsolutePath]/Test.py ../Main/Code/app.py 

हालांकि हमेशा की तरह, मैं:

sc.addFile("/[AbsolutePathTo]/Test.py") 

मैं भी निम्नलिखित जब मेरे चिंगारी आवेदन जमा करने की कोशिश की

NameError: name 'func' is not defined 

क: एक नाम त्रुटि मिलती है मैं func() मेरे app.py पर कॉल कर रहा हूं।

sc.addFile("/[AbsolutePathTo]/Test.py") 
: ('टेस्ट' के साथ अगर मैं Test.func (कॉल करने के लिए) की कोशिश एक ही त्रुटि)

अंत में, अल भी उपर दिए गए आदेश के साथ pyspark खोल अंदर फ़ाइल आयात करने की कोशिश की

आश्चर्यजनक रूप से, मुझे आयात पर कोई त्रुटि नहीं मिली है, लेकिन फिर भी, मैं त्रुटि प्राप्त किए बिना func() को कॉल नहीं कर सकता। इसके अलावा, यह सुनिश्चित नहीं है कि यह महत्वपूर्ण है, लेकिन मैं एक मशीन पर स्थानीय रूप से स्पार्क का उपयोग कर रहा हूं।

मैंने वास्तव में उन सभी चीजों की कोशिश की जो मैं सोच सकता था, लेकिन अभी भी इसे काम नहीं कर सकता। शायद मैं कुछ बहुत याद कर रहा हूँ। किसी भी सहायता की सराहना की जाएगी।

+0

क्या पूर्ण पथ में कोई स्थान होता है? क्या आप app.py फ़ाइल में आयात कर रहे हैं? – mgaido

+0

नहीं, पथ में कोई जगह नहीं है। हां, app.py मेरा स्पार्क एप्लिकेशन है जहां मैं आयात करने की कोशिश कर रहा हूं। लेकिन जैसा कि मैंने कहा, मेरे पास एक ही समस्या है यदि मैं एक पाइस्पार्क खोल के अंदर आयात करने की कोशिश कर रहा हूं। – Kito

+0

आप इसे कैसे आयात कर रहे हैं? – mgaido

उत्तर

11

ठीक है, वास्तव में मेरा प्रश्न बेवकूफ है। करने के बाद:

import Test 

तो मैं

Test.func() 

फोन है और यह कर सकते हैं:

sc.addFile("/[AbsolutePathTo]/Test.py") 

मैं अभी भी Test.py फ़ाइल है कि मैं के साथ एक नियमित अजगर फ़ाइल आयात होगा आयात करने के लिए है काम करता है। मैंने सोचा कि "आयात परीक्षण" जरूरी नहीं है क्योंकि मैं स्पार्क संदर्भ में फ़ाइल जोड़ता हूं, लेकिन स्पष्ट रूप से इसका कोई प्रभाव नहीं पड़ता है। मुझे सही दिशा में इंगित करने के लिए धन्यवाद मार्क 9 1।

अद्यतन 2017/10/28:

एप्लिकेशन पर टिप्पणी में पूछा के रूप में, यहां और विवरण।पीई

from pyspark import SparkContext 
from pyspark.conf import SparkConf 

conf = SparkConf() 
conf.setMaster("local[4]") 
conf.setAppName("Spark Stream") 
sc = SparkContext(conf=conf) 
sc.addFile("Test.py") 

import Test 

Test.func() 
+0

मैं इस तरह के कुछ ढूंढ रहा हूँ। क्या आप पूर्ण कोड (app.py) पोस्ट कर सकते हैं, आप कैसे आयात कर रहे हैं और test.func() कृपया कॉल कर रहे हैं? – goks

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