2017-10-13 5 views
0

%storage魔法をDatalabノートブックで使用することを検討していますが、関数内です。行は次のようになります。Google Cloud Datalab内の関数内から魔法を実行する

%storage write --variable df --object $bucket_object 

や関数を呼び出すとき、私はこのエラーを取得:

Undefined variable referenced in command line: $bucket_object

bucket_object機能で以前に定義し、関数外で実行している場合、これは動作します。 iPythonパスを検索し、次にのようなインポートをお勧めしますについて同様の質問について

This answer

from IPython.core.magics.display import Javascript

は、それが別の関数内で動作なるようにDatalabマジックの各機能を呼び出すための似たようなアプローチはありますか?

答えて

2

%のストレージと他の同様のコマンドは、主に基礎となるAPIの構文上の砂糖です。

たとえば、この場合はgoogle.datalab.storage APIです。ドキュメントは、このような何かがうまくいくかもしれないhttp://googledatalab.github.io/pydatalab/google.datalab.storage.html

である:

import google.datalab.storage as storage 

bucket = storage.Bucket(bucket_name) 
obj = bucket.object(object_key) 
obj.write_stream(data, content_type) 

希望に役立つこと。

+0

'write_stream'はこのエラーを示します:" TypeError:write_stream()は3つの引数(2が与えられます)をとります "。 [documentation](http://googledatalab.github.io/pydatalab/_modules/google/datalab/storage/_object.html)に基づいて、代わりに 'upload'が動作するかもしれませんが、それはこのエラーを出しました:" ValueError: DataFrameの真理値はあいまいです。a.empty、a.bool()、a.item()、a.any()またはa.all()を使用してください。 –

+0

write_streamもコンテンツタイプを取るため、obj.write_stream(data、content_type)である必要があります。 –

関連する問題