2016-01-11 8 views
6

के साथ एक फ़ाइल में पढ़ना मैं ipython नोटबुक, मूल pd.read_csv() में फ़ाइल में पढ़ने के लिए Google Datalab का उपयोग करने का प्रयास कर रहा हूं क्योंकि मुझे फ़ाइल का पथ नहीं मिल रहा है। मेरे पास यह स्थानीय रूप से है और इसे एक बाल्टी में Google क्लाउड स्टोरेज पर भी अपलोड किया गया है।Google datalab

मुझे यह समझाया गया है, जहां मैं

os.getcwd() 

देता है '/content/[email protected]'

os.listdir('/content/[email protected]') 

देता है [ '.git', '.gitignore' कर रहा हूँ निम्न कमांड भाग गया 'datalab', 'हैलो World.ipynb', '.ipynb_checkpoints']

उत्तर

9

निम्नलिखित text कहा जाता है एक स्ट्रिंग चर में ऑब्जेक्ट की सामग्री पढ़ता है:

%%storage read --object "gs://path/to/data.csv" --variable text 

फिर

from cStringIO import StringIO 
mydata = pd.read_csv(StringIO(text)) 
mydata.head() 

उम्मीद है कि पांडा "gs://" यूआरएल का समर्थन करेंगे (वर्तमान में Google मेघ भंडारण से सीधे पढ़ने की अनुमति देने के रूप में यह s3:// के लिए करता है।

मैं निम्नलिखित डॉक्स वास्तव में उपयोगी पाया है:

https://github.com/GoogleCloudPlatform/datalab/tree/master/content/datalab/tutorials

आशा है कि मदद करता है (बस Datalab साथ भी शुरू हो रही है, तो हो सकता है किसी को जल्द ही एक क्लीनर विधि होगा)।

+0

मैं इस त्रुटि मिलती है: storage' सेल जादू '%% नहीं मिला (लेकिन लाइन जादू'% storage' मौजूद है, आपको लगता है कि बजाय मतलब था?)? – vvv

+0

ऐसा लगता है कि मुझे पथ निर्दिष्ट करना है, लेकिन यह मेरे लिए अज्ञात है :) – vvv

+0

'%% स्टोरेज 'मेरे लिए काम करता है। कोड के दो बिट्स नोटबुक में अलग-अलग कक्षों में हैं, '%%' एक सेल जादू है। पथ को स्पष्ट करने के लिए, 'gs: // path/the/data.csv' आपके बाल्टी में Google क्लाउड स्टोरेज पर फ़ाइल को इंगित करता है, न कि आपके लैपटॉप पर स्थानीय रूप से, इसलिए आपने अपलोड किया है। 'जीएस: // बाल्टी/file.csv' – Chris

1

आप FederatedTable wrapper ऑब्जेक्ट बनाकर क्लाउड स्टोरेज में सीएसवी फ़ाइलों के खिलाफ सीधे BigQuery क्वेरी भी चला सकते हैं। यही कारण है कि यहां वर्णित है:

https://github.com/GoogleCloudPlatform/datalab/blob/master/content/datalab/tutorials/BigQuery/Using%20External%20Tables%20from%20BigQuery.ipynb

+0

लेकिन क्या पथ को निर्दिष्ट करने की आवश्यकता है? मैं बस इतना उलझन में हूं कि यह सीएसवी फ़ाइल जहां मैं भंडारण 'जीवन' पर अपलोड करता हूं – vvv

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