Pythonのコードをセル内に書いて実行することができます


In [ ]:
# このセルにカーソルを当ててCtrl+Enter もしくは Shift+Enterを押すと'hello world'と出力することができます
print('hello world')

In [ ]:
# 各種制御構文、クラスや関数なども含めて通常のプログラミングと同じように動作させることができます
for i in range(10):
    print(i)

In [ ]:
# 変数の定義はセル内だけでなく、ノートブック全体がスコープとなり、通常のPythonと同じような扱いとなります
x = 10

In [ ]:
# xは10なので、10+20となります
y = x + 20
print(y)

このようにPythonをインタラクティブに動作させるだけでなく、GCPの各種サービスとシームレスに連携できることがDatalabの大きな利点となります。

DatalabからBigQueryを呼び出す

bqというマジックコマンドを使う


In [ ]:
%%bq query
SELECT id, title, num_characters
FROM `publicdata.samples.wikipedia`
WHERE wp_namespace = 0
ORDER BY num_characters DESC
LIMIT 10

BigQueryコマンドの結果をPythonのオブジェクトして使う(パターン1)


In [ ]:
%%bq query -n requests
SELECT timestamp, latency, endpoint
FROM `cloud-datalab-samples.httplogs.logs_20140615`
WHERE endpoint = 'Popular' OR endpoint = 'Recent'

In [ ]:
import google.datalab.bigquery as bq
import pandas as pd

# クエリの結果をPandasのデータフレームとしていれる
df = requests.execute(output_options=bq.QueryOutput.dataframe()).result()

df.head()

BigQueryコマンドの結果をPythonのオブジェクトして使う(パターン2)


In [ ]:
import google.datalab.bigquery as bq
import pandas as pd

# 発行するクエリ
query = """SELECT timestamp, latency, endpoint
           FROM `cloud-datalab-samples.httplogs.logs_20140615`
           WHERE endpoint = 'Popular' OR endpoint = 'Recent'"""
# クエリオブジェクトを作る
qobj = bq.Query(query)
# pandasのデータフレームとしてクエリの結果を取得
df2 = qobj.execute(output_options=bq.QueryOutput.dataframe()).result()
# 以下pandasの操作へ
df2.head()