मैं नियमित रूप से PySpark का उपयोग करके बड़ी डेटा विश्लेषण परियोजनाओं पर सहयोग करता हूं। हमने उस प्रोजेक्ट को स्थानीय फाइलों के साथ काम करते हुए विकसित किया है। अब हम इस प्रोजेक्ट को Google क्लाउड पर परिनियोजित करना चाहते हैं। चूंकि बहुत सारे स्थानीय पथ हैं, इसलिए हमें उन्हें Google क्लाउड पथ में बदलना होगा। क्या पथों को प्रबंधित करने का कोई अच्छा तरीका है और? इस तरह स्थानीय से क्लाउड में परिवर्तन की सुविधा मिलनी चाहिए। मैंने प्रत्येक पथ को एक चर के रूप में जोड़ने का प्रयास किया है। एक उदाहरण:

# [START download-data]

iris_data_filename = 'iris_data.csv'

iris_target_filename = 'iris_target.csv'

data_dir = 'gs://cloud-samples-data/ml-engine/iris'



# gsutil outputs everything to stderr so we need to divert it to stdout.

subprocess.check_call(['gsutil', 'cp', os.path.join(data_dir,

iris_data_filename),

iris_data_filename], stderr=sys.stdout)

subprocess.check_call(['gsutil', 'cp', os.path.join(data_dir,

iris_target_filename),

iris_target_filename], stderr=sys.stdout)

# [END download-data]





# [START load-into-pandas]

# Load data into pandas, then use `.values` to get NumPy arrays

iris_data = pd.read_csv(iris_data_filename).values

iris_target = pd.read_csv(iris_target_filename).values

धन्यवाद

0
Ley 29 जिंदा 2020, 16:31

1 उत्तर

सबसे बढ़िया उत्तर

हां, मैं एक चर में स्थानीय पथ के लिए आधार डीआईआर और दूसरे चर में क्लाउड स्टोरेज पथ रखूंगा, ताकि आप पर्यावरण के अनुसार आसानी से उनके बीच स्विच कर सकें।

LOCAL_DIR = '/home/user/dir'
GCS_DIR = 'gs://my-bucket/dir'

# Choose the data_dir value according to your needs
data_dir = LOCAL_DIR if current_env == 'local' else GCS_DIR

# Continue working
iris_target_filename = 'iris_target.csv'

# Example of the full path
full_path = os.path.join(data_dir, iris_target_filename)

इसके अलावा, पांडा 0.24 के बाद से, यदि आपने gcsfs इंस्टॉल किया है, तो आप GCS पथ का उपयोग कर सकते हैं सीधे फ़ाइल को पहले डाउनलोड किए बिना, जिससे वातावरण के बीच स्विच करना आसान हो जाएगा।

उदाहरण:

pd.read_csv('gs://cloud-samples-data/ml-engine/iris/iris_data.csv')
1
Tlaquetzal 29 जिंदा 2020, 17:54