LoginSignup
3
2

More than 3 years have passed since last update.

Watson StudioのJupyter NotebookからICOSへファイル出力をする

Posted at

Watson StudioのJupyter NotebookからICOS(IBM Cloud Object Storage)にファイルを出力する方法のメモです。
それ以外のファイルの取り扱いに関しても整理してみました。
具体的には、以下の1から4の操作です。
ICOSへのファイル出力は4の操作です。

WS000000.JPG

1. PCからICOSへアップロード

Watson Studioを利用している場合は、「Data Assetsへのデータの登録」という操作になりますが、物理的にはファイルはICOSに置かれます。
プロジェクトのAssets画面等で、1010マークをクリックして、アップロードしたいファイルをドラッグドロップするだけです。
(日本語が含まれる場合は、ファイルのエンコードはUTF-8にして下さい)

WS000001.JPG

2. ICOSのファイルをJupyter notebookに取り込む

Jupyter Notebookを起動して、1010マークをクリックし、取り込みたいファイルを「Insert pandas DataFrames」してください。

WS000002.JPG

以下のようなコードが自動生成されます。

import types
import pandas as pd
from botocore.client import Config
import ibm_boto3

def __iter__(self): return 0

# @hidden_cell
# The following code accesses a file in your IBM Cloud Object Storage. It includes your credentials.
# You might want to remove those credentials before you share your notebook.
client_ABC = ibm_boto3.client(service_name='s3',
    ibm_api_key_id='xxx',
    ibm_auth_endpoint="xxx",
    config=Config(signature_version='oauth'),
    endpoint_url='xxx')

body = client_ABC.get_object(Bucket='xxx',Key='potato_list.csv')['Body']
# add missing __iter__ method, so pandas accepts body as file-like object
if not hasattr(body, "__iter__"): body.__iter__ = types.MethodType( __iter__, body )

df_data_1 = pd.read_csv(body)
df_data_1.head()

このセルを実行すると、ファイルはPandasのデータフレームに取り込まれて、データフレームの最初の10行が表示されます。
WS000003.JPG

3. ICOSのファイルをファイルシステムに取り込む

以下の1行でできます。
Bucketやkeyの指定は、上記のclient_ABC.get_object の内容をそのままコピーして下さい。
Filenameはファイルシステムに取り込んだときに付けたい任意の名前を指定してください。

client_ABC.download_file(Bucket='xxx',Key='potato_list.csv',Filename='potato_list_copy1.csv')

ファイルシステムに保存されたファイルは、以下のように、lsやcatで確認、参照することができます。
WS000004.JPG

4. ファイルシステムのファイルをICOSへアップロードする

ここがこの記事のメインですが、操作は1行だけです。

Filenameはファイルシステムにあるファイルを指定してください。keyはICOS上のファイル名として、任意の名前を指定してください。

client_ABC.upload_file(Filename='potato_list_copy1.csv',Bucket='xxx',Key='potato_list_copy2.csv')

実行しても何も出力はありません。
確認するには、プロジェクトのAssetsタブ等を開いて、1010マークのFilesから確認してください。

WS000005.JPG

この時点ではData Assetsとして登録されていませんので、以下のようにすることでData Assetsとして登録することも可能です。

WS000006.JPG

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2