From 7366a315a83153b7158dcfdcbd39bedc3837817e Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Wed, 27 May 2020 10:14:19 +0900 Subject: [PATCH] Added by Colaboratory --- notebooks/pytd.ipynb | 3971 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3971 insertions(+) create mode 100644 notebooks/pytd.ipynb diff --git a/notebooks/pytd.ipynb b/notebooks/pytd.ipynb new file mode 100644 index 0000000..49e0e8c --- /dev/null +++ b/notebooks/pytd.ipynb @@ -0,0 +1,3971 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "pytd.ipynb", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "n2WwhdIGbk5k", + "colab_type": "text" + }, + "source": [ + "# pytd: Treasure Data Driver for Python\n", + "\n", + "- [GitHub repository](https://github.com/takuti/pytd)\n", + "- [Documentation](https://pytd-doc.readthedocs.io/)\n", + "- Compliment [td-client-python](https://github.com/treasure-data/td-client-python/), an official Treasure Data REST API wrapper, with additional functionalities\n", + " - `pandas.DataFrame`-friendly I/O operations\n", + " - Direct access to Treasure Data’s [Presto query engine](https://support.treasuredata.com/hc/en-us/articles/360001457427-Presto-Query-Engine-Introduction) and [Plazma primary storage](https://www.slideshare.net/treasure-data/td-techplazma)\n", + " - Simple interfaces for reading/writing data from/to Treasure Data" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NCMSu62XFM-k", + "colab_type": "text" + }, + "source": [ + "## Installation\n", + "\n", + "`[spark]` extra requirement enables using PySpark ([td-spark](https://support.treasuredata.com/hc/en-us/articles/360001487167-Apache-Spark-Driver-td-spark-FAQs)) for writing:\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TMKNFHgGwnpz", + "colab_type": "code", + "outputId": "3c523b3a-38ec-4acc-a974-185a5623dd2c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 649 + } + }, + "source": [ + "!pip install pytd[spark]" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Collecting pytd[spark]\n", + " Downloading https://files.pythonhosted.org/packages/82/dd/844fd1b17930c579399f25d5cf411ed79d91cd998e60f67e064ada536d0c/pytd-1.0.0-py3-none-any.whl\n", + "Requirement already satisfied: pandas>=0.22.0 in /usr/local/lib/python3.6/dist-packages (from pytd[spark]) (0.25.3)\n", + "Collecting td-client>=1.1.0\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/b4/82/47a06ad301592ea20d6b5d997fd3f4355082c7627cd5619eadb43160d2f3/td_client-1.1.0-py3-none-any.whl (80kB)\n", + "\u001b[K |████████████████████████████████| 81kB 3.4MB/s \n", + "\u001b[?25hRequirement already satisfied: urllib3<1.25,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from pytd[spark]) (1.24.3)\n", + "Collecting presto-python-client>=0.6.0\n", + " Downloading https://files.pythonhosted.org/packages/e7/7a/93af61569a6ea408b3ab3497ef84e1a97176b8faf0314b031e0f123e91f7/presto_python_client-0.7.0-py3-none-any.whl\n", + "Requirement already satisfied: pytz>=2018.5 in /usr/local/lib/python3.6/dist-packages (from pytd[spark]) (2018.9)\n", + "Collecting pyspark>=2.4.0; extra == \"spark\"\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/87/21/f05c186f4ddb01d15d0ddc36ef4b7e3cedbeb6412274a41f26b55a650ee5/pyspark-2.4.4.tar.gz (215.7MB)\n", + "\u001b[K |████████████████████████████████| 215.7MB 62kB/s \n", + "\u001b[?25hRequirement already satisfied: pyarrow>=0.11.0; extra == \"spark\" in /usr/local/lib/python3.6/dist-packages (from pytd[spark]) (0.14.1)\n", + "Collecting td-pyspark>=19.9.0; extra == \"spark\"\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/69/fb/cede3be16d956a13237edeff5b36fc2b13f6201e7d24740d101f75f10dc9/td_pyspark-19.11.0-py3-none-any.whl (22.9MB)\n", + "\u001b[K |████████████████████████████████| 22.9MB 101kB/s \n", + "\u001b[?25hRequirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.22.0->pytd[spark]) (2.6.1)\n", + "Requirement already satisfied: numpy>=1.13.3 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.22.0->pytd[spark]) (1.17.4)\n", + "Requirement already satisfied: msgpack>=0.5.2 in /usr/local/lib/python3.6/dist-packages (from td-client>=1.1.0->pytd[spark]) (0.5.6)\n", + "Requirement already satisfied: click in /usr/local/lib/python3.6/dist-packages (from presto-python-client>=0.6.0->pytd[spark]) (7.0)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from presto-python-client>=0.6.0->pytd[spark]) (2.21.0)\n", + "Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from presto-python-client>=0.6.0->pytd[spark]) (1.12.0)\n", + "Collecting py4j==0.10.7\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/e3/53/c737818eb9a7dc32a7cd4f1396e787bd94200c3997c72c1dbe028587bd76/py4j-0.10.7-py2.py3-none-any.whl (197kB)\n", + "\u001b[K |████████████████████████████████| 204kB 42.2MB/s \n", + "\u001b[?25hRequirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->presto-python-client>=0.6.0->pytd[spark]) (3.0.4)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->presto-python-client>=0.6.0->pytd[spark]) (2.8)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->presto-python-client>=0.6.0->pytd[spark]) (2019.9.11)\n", + "Building wheels for collected packages: pyspark\n", + " Building wheel for pyspark (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for pyspark: filename=pyspark-2.4.4-py2.py3-none-any.whl size=216130387 sha256=c9e0b5b79f8008cf106fe4e21d1b9f99264ddfab154cf5637331ced41e851a73\n", + " Stored in directory: /root/.cache/pip/wheels/ab/09/4d/0d184230058e654eb1b04467dbc1292f00eaa186544604b471\n", + "Successfully built pyspark\n", + "Installing collected packages: td-client, presto-python-client, py4j, pyspark, td-pyspark, pytd\n", + "Successfully installed presto-python-client-0.7.0 py4j-0.10.7 pyspark-2.4.4 pytd-1.0.0 td-client-1.1.0 td-pyspark-19.11.0\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Iun7qiAGLCRa", + "colab_type": "code", + "outputId": "00d1fa0e-2a95-4131-96a5-c6c2aa2fa91a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 241 + } + }, + "source": [ + "# Skip this cell if you run code in your local environment. This is the code for Colab to ensure to use JDK 8 which is required by Spark\n", + "!apt-get install openjdk-8-jdk-headless -qq > /dev/null\n", + "!echo 2 | update-alternatives --config java\n", + "!java -version" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "There are 2 choices for the alternative java (providing /usr/bin/java).\n", + "\n", + " Selection Path Priority Status\n", + "------------------------------------------------------------\n", + "* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 auto mode\n", + " 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode\n", + " 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode\n", + "\n", + "Press to keep the current choice[*], or type selection number: update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode\n", + "openjdk version \"1.8.0_222\"\n", + "OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)\n", + "OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7QxBWdhTfUTC", + "colab_type": "text" + }, + "source": [ + "## Preparation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VcPIKJFtFS-C", + "colab_type": "text" + }, + "source": [ + "Set Treasure Data API key and endpoint:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "yJxdKucuATrx", + "colab_type": "code", + "outputId": "7035ba0a-2454-4325-a938-b68d64f717b9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "import os\n", + "from getpass import getpass\n", + "\n", + "os.environ['TD_API_KEY'] = getpass('Enter TD API KEY ')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Enter TD API KEY ··········\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "D9jsbEYiR1_X", + "colab_type": "code", + "colab": {} + }, + "source": [ + "os.environ['TD_API_SERVER'] = 'https://api.treasuredata.com'" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "z3EQGrHpbzfy", + "colab_type": "text" + }, + "source": [ + "## Basic usage" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fAG851jnFgu0", + "colab_type": "text" + }, + "source": [ + "Build a `Client` instance connecting to TD:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HiKD1NKqxGne", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import pytd" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "hzlocO9DyNjl", + "colab_type": "code", + "colab": {} + }, + "source": [ + "client = pytd.Client(database='sample_datasets')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HvBHjXecHXbJ", + "colab_type": "text" + }, + "source": [ + "### Querying data" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qvsVdNZ6FvAO", + "colab_type": "text" + }, + "source": [ + "Issue a query:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UeNA3qukAg9a", + "colab_type": "code", + "outputId": "e8e2671b-0820-4f0c-d475-55fe8b6a03d4", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "client.query('select code, count(1) as cnt from www_access group by 1 order by 2 desc')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'columns': ['code', 'cnt'], 'data': [[200, 4981], [404, 17], [500, 2]]}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4wLOBczPGbXE", + "colab_type": "text" + }, + "source": [ + "The query runs on Presto by default. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yU7kAmjEGHLO", + "colab_type": "text" + }, + "source": [ + "The query result is convertible into `pandas.DataFrame`:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ebhFkutyAoPT", + "colab_type": "code", + "outputId": "1de4cb3e-60b0-4dd7-c07f-8946f3b80c42", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 497 + } + }, + "source": [ + "import pandas as pd\n", + "\n", + "res = client.query('select * from www_access')\n", + "df = pd.DataFrame(**res)\n", + "df.head()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
userhostpathreferercodeagentsizemethodtime
0None128.216.140.97/item/sports/2511http://www.google.com/search?ie=UTF-8&q=google...200Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...95GET1412385195
1None224.225.147.72/category/electronics-200Mozilla/5.0 (compatible; MSIE 9.0; Windows NT ...43GET1412385194
2None172.75.186.56/category/jewelry-200Mozilla/5.0 (compatible; Googlebot/2.1; +http:...79GET1412385192
3None196.183.34.70/search/?c=Electronics+Games-200Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.1)...86POST1412385190
4None116.198.217.173/category/electronics/item/games/4012200Mozilla/5.0 (Windows NT 6.0; rv:10.0.1) Gecko/...94GET1412385188
\n", + "
" + ], + "text/plain": [ + " user host path ... size method time\n", + "0 None 128.216.140.97 /item/sports/2511 ... 95 GET 1412385195\n", + "1 None 224.225.147.72 /category/electronics ... 43 GET 1412385194\n", + "2 None 172.75.186.56 /category/jewelry ... 79 GET 1412385192\n", + "3 None 196.183.34.70 /search/?c=Electronics+Games ... 86 POST 1412385190\n", + "4 None 116.198.217.173 /category/electronics ... 94 GET 1412385188\n", + "\n", + "[5 rows x 9 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "yJeuaqL_GP3r", + "colab_type": "code", + "outputId": "8a18488f-5429-4f26-d7db-24718508015f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "df['agent'].value_counts().plot(kind='bar')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 9 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RfNaIxh_NHxB", + "colab_type": "text" + }, + "source": [ + "By passing `engine='hive'` option, use Hive instead of Presto:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rQffuN0VNGxA", + "colab_type": "code", + "outputId": "cee362d7-be03-425e-bbcf-6ffc6c5406c7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 72 + } + }, + "source": [ + "client.query('select hivemall_version()', engine='hive')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "returning `tdclient.cursor.Cursor`. This cursor, `Cursor#fetchone` in particular, might behave different from your expectation, because it actually executes a job on Treasure Data and fetches all records at once from the job result.\n" + ], + "name": "stderr" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'columns': ['_c0'], 'data': [['0.6.0-SNAPSHOT-201901-r01']]}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 10 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dLo0gzGfcIEL", + "colab_type": "text" + }, + "source": [ + "TD-specific optional query arguments are available:\n", + "\n", + "| Argument | | Sample Value |\n", + "|:---|:---|:---|\n", + "|`type`|Set query type|`hive`, `presto`|\n", + "|`db`|Use the database|`sample_datasets`|\n", + "|`result_url`|Write result to the URL|`ftp://wf_test:***@treasure.brickftp.com/count.csv`|\n", + "|`priority`|Set priority|`-2` (very low), `-1` (low), `0` (normal), `1` (high), `2` (very high)|\n", + "|`retry_limit`|Maximum number of automatic retries|`3`|\n", + "\n", + "Following arguments customize a way of waiting job completion signal from Python TD Job object:\n", + "\n", + "| Argument | | Sample Value |\n", + "|:---|:---|:---|\n", + "|`wait_interval`|Sleep interval until job finish|`5`|\n", + "|`wait_callback`|Called every interval against job itself|`print`|" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LSdmI26UcNYz", + "colab_type": "text" + }, + "source": [ + "Sample advanced usage:\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "B2oXVdKCcOgH", + "colab_type": "code", + "outputId": "7e3f6374-214b-4e6f-b80c-75802d22ab95", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 377 + } + }, + "source": [ + "import time\n", + "\n", + "client.query('select 1', \n", + " engine='hive', \n", + " db='sample_datasets', \n", + " priority=-1, \n", + " wait_callback=lambda obj: print('[{}] waiting with {}'.format(int(time.time()), obj)), \n", + " wait_interval=2)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "returning `tdclient.cursor.Cursor`. This cursor, `Cursor#fetchone` in particular, might behave different from your expectation, because it actually executes a job on Treasure Data and fetches all records at once from the job result.\n" + ], + "name": "stderr" + }, + { + "output_type": "stream", + "text": [ + "[1573547143] waiting with \n", + "[1573547145] waiting with \n", + "[1573547147] waiting with \n", + "[1573547149] waiting with \n", + "[1573547151] waiting with \n", + "[1573547153] waiting with \n", + "[1573547155] waiting with \n", + "[1573547157] waiting with \n", + "[1573547159] waiting with \n", + "[1573547162] waiting with \n", + "[1573547164] waiting with \n", + "[1573547166] waiting with \n", + "[1573547168] waiting with \n", + "[1573547170] waiting with \n", + "[1573547172] waiting with \n", + "[1573547174] waiting with \n", + "[1573547176] waiting with \n", + "[1573547178] waiting with \n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'columns': ['_c0'], 'data': [[1]]}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 13 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GpPu5_Thdwy4", + "colab_type": "text" + }, + "source": [ + "The optional arguments are available only for querying via TD REST API that requires using `tdclient.cursor.Cursor`.\n", + "\n", + "That is, you cannot enjoy efficient direct access to Presto query engine under the combination of `engine='presto'` and optional arguments:\n", + "\n", + "- `client.query('select 1', engine='presto')`\n", + " - -> Use Presto client\n", + " - Direct access to Prest.\n", + " - Generally more efficient\n", + "- `client.query('select 1', engine='presto', priority=1)`\n", + " - -> Use TD REST APIs\n", + " - Query via TD REST API. \n", + " - You can use the special options such as `priority`. \n", + " \n", + "By contrast, `engine='hive'` always uses the REST APIs regardless the existence of optional parameters." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bSy_ucuhHfrk", + "colab_type": "text" + }, + "source": [ + "### Writing data" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "axxfogpjHTn3", + "colab_type": "text" + }, + "source": [ + "Use `load_table_from_dataframe` for writing `pandas.DataFrame` to TD:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2RaDr9S1I_W-", + "colab_type": "code", + "outputId": "00a70d9a-5bba-4d36-83a7-6c54936c1064", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + } + }, + "source": [ + "df_iris = pd.read_csv(\n", + " 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',\n", + " names=['sepal length', 'sepal width', 'petal length', 'petal width', 'class'])\n", + "df_iris.head()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sepal lengthsepal widthpetal lengthpetal widthclass
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", + "
" + ], + "text/plain": [ + " sepal length sepal width petal length petal width class\n", + "0 5.1 3.5 1.4 0.2 Iris-setosa\n", + "1 4.9 3.0 1.4 0.2 Iris-setosa\n", + "2 4.7 3.2 1.3 0.2 Iris-setosa\n", + "3 4.6 3.1 1.5 0.2 Iris-setosa\n", + "4 5.0 3.6 1.4 0.2 Iris-setosa" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 11 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UOk_QtDUfX58", + "colab_type": "text" + }, + "source": [ + "Create a database and set your arbitrary table name for further operations:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qcpypv4YfdUi", + "colab_type": "code", + "colab": {} + }, + "source": [ + "database, table = 'takuti', 'demo'" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "AEJHyPEhs2BR", + "colab_type": "code", + "outputId": "0606f166-7966-464f-b643-1fdd6b7439fd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "client.create_database_if_not_exists(database)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "database `takuti` already exists\n" + ], + "name": "stderr" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "QL1YB_QVtMyp", + "colab_type": "code", + "outputId": "4e5de92a-516b-44b1-cf48-3a6f06381a82", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "source": [ + "destination = '{}.{}'.format(database, table)\n", + "destination" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'takuti.demo'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LKg8eT81JOZ8", + "colab_type": "code", + "colab": {} + }, + "source": [ + "client.load_table_from_dataframe(df_iris, destination, writer='spark', if_exists='overwrite')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "PehI7OeTupyQ", + "colab_type": "code", + "outputId": "11a0f2d2-8890-42ce-ebb6-054309cc3fd9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 203 + } + }, + "source": [ + "pd.DataFrame(**client.query('select * from {}'.format(destination))).head()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
sepal_lengthsepal_widthpetal_lengthpetal_widthclasstime
05.13.51.40.2Iris-setosa1573609973
14.93.01.40.2Iris-setosa1573609973
24.73.21.30.2Iris-setosa1573609973
34.63.11.50.2Iris-setosa1573609973
45.03.61.40.2Iris-setosa1573609973
\n", + "
" + ], + "text/plain": [ + " sepal_length sepal_width ... class time\n", + "0 5.1 3.5 ... Iris-setosa 1573609973\n", + "1 4.9 3.0 ... Iris-setosa 1573609973\n", + "2 4.7 3.2 ... Iris-setosa 1573609973\n", + "3 4.6 3.1 ... Iris-setosa 1573609973\n", + "4 5.0 3.6 ... Iris-setosa 1573609973\n", + "\n", + "[5 rows x 6 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 16 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VRxnXgdW5ADo", + "colab_type": "text" + }, + "source": [ + "Option `writer` provides three different ways to write records to TD:\n", + "\n", + "1. **Bulk Import API**: `bulk_import` (default)\n", + " - Convert data into a CSV file and upload via TD REST API in the batch fashion.\n", + "2. **Presto INSERT INTO query**: `insert_into`\n", + " - Insert every single row in ``DataFrame`` by issuing an INSERT INTO query through the Presto query engine.\n", + " - Recommended only for a small volume of data.\n", + "3. [td-spark](https://support.treasuredata.com/hc/en-us/articles/360001487167-Apache-Spark-Driver-td-spark-FAQs): `spark`\n", + " - Local Spark instance *directly* writes `DataFrame` to Treasure Data’s primary storage system.\n", + " \n", + "Characteristics of each of these methods can be summarized as follows:\n", + "\n", + "||`bulk_import`|`insert_into`|`spark`|\n", + "|:---:|:---:|:---:|:---:|\n", + "|Scalable against data volume|✓||✓|\n", + "|Write performance for larger data|||✓|\n", + "|Memory efficient|✓|✓||\n", + "|Disk efficient||✓||\n", + "|Minimal package dependency|✓|✓||" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EK0h9hKmGY-i", + "colab_type": "text" + }, + "source": [ + "#### Memory consumption and running time in each method\n", + "\n", + "See how long each method takes, and how much memory they consume:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uUFMEtzDJRtZ", + "colab_type": "code", + "outputId": "fb536786-770c-456b-ea58-c4474730ec7c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 224 + } + }, + "source": [ + "!pip install memory_profiler\n", + "%load_ext memory_profiler" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Collecting memory_profiler\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/9f/fe/1fca7273dd111108f204a686b12a12b6422d405fe4614087aa7d5a66ea87/memory_profiler-0.55.0.tar.gz (40kB)\n", + "\r\u001b[K |████████ | 10kB 15.1MB/s eta 0:00:01\r\u001b[K |████████████████ | 20kB 3.4MB/s eta 0:00:01\r\u001b[K |████████████████████████ | 30kB 4.9MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 40kB 5.4MB/s \n", + "\u001b[?25hRequirement already satisfied: psutil in /usr/local/lib/python3.6/dist-packages (from memory_profiler) (5.4.8)\n", + "Building wheels for collected packages: memory-profiler\n", + " Building wheel for memory-profiler (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for memory-profiler: filename=memory_profiler-0.55.0-cp36-none-any.whl size=27174 sha256=3d15704406e482ff4b2a93ca6c2402ea3dcbe99157e2a9bdad2eeb0f28c23c3f\n", + " Stored in directory: /root/.cache/pip/wheels/f0/ff/63/fdbff3f1e1b76ad4eae491dd5b190902906b093e93eb86dd5a\n", + "Successfully built memory-profiler\n", + "Installing collected packages: memory-profiler\n", + "Successfully installed memory-profiler-0.55.0\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "bo1wj7TYJdVA", + "colab_type": "code", + "outputId": "cfd3ea54-48b9-4442-8761-be5332e67fb6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 119 + } + }, + "source": [ + "%%time\n", + "%%memit\n", + "client.load_table_from_dataframe(df_iris, destination, writer='bulk_import', if_exists='overwrite')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "uploading data converted into a CSV file\n", + "performing a bulk import job\n", + "[job id 550760286] imported 150 records.\n" + ], + "name": "stderr" + }, + { + "output_type": "stream", + "text": [ + "peak memory: 170.00 MiB, increment: 0.53 MiB\n", + "CPU times: user 342 ms, sys: 27.1 ms, total: 369 ms\n", + "Wall time: 57.9 s\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "aQt8onIgJU_n", + "colab_type": "code", + "outputId": "8cd548d0-6dcb-4598-c94d-49306602c960", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 85 + } + }, + "source": [ + "%%time\n", + "%%memit\n", + "client.load_table_from_dataframe(df_iris, destination, writer='insert_into', if_exists='overwrite')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "column 'class' has non-numeric. The values are stored as 'varchar' type on Treasure Data.\n" + ], + "name": "stderr" + }, + { + "output_type": "stream", + "text": [ + "peak memory: 169.98 MiB, increment: 1.27 MiB\n", + "CPU times: user 366 ms, sys: 29 ms, total: 395 ms\n", + "Wall time: 3.01 s\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "X4TURYujGHuS", + "colab_type": "code", + "outputId": "193df0b2-ef45-4b6f-aa7f-e6b5bd12a9dc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 102 + } + }, + "source": [ + "%%time\n", + "%%memit\n", + "client.load_table_from_dataframe(df_iris, destination, writer='spark', if_exists='overwrite')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Downloading td-spark...\n", + "Completed to download\n" + ], + "name": "stderr" + }, + { + "output_type": "stream", + "text": [ + "peak memory: 215.12 MiB, increment: 50.04 MiB\n", + "CPU times: user 349 ms, sys: 104 ms, total: 452 ms\n", + "Wall time: 22.4 s\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cOPanfROL4sy", + "colab_type": "text" + }, + "source": [ + "`writer='spark'` downloads td-spark JAR file at the first time, so it will become more efficient from the second execution:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "61_wkoM-LzPh", + "colab_type": "code", + "outputId": "87a56a8f-869e-4caf-86b4-1697ec01e7c0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "%%time\n", + "%%memit\n", + "client.load_table_from_dataframe(df_iris, destination, writer='spark', if_exists='overwrite')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "peak memory: 216.18 MiB, increment: 1.05 MiB\n", + "CPU times: user 265 ms, sys: 24 ms, total: 289 ms\n", + "Wall time: 5.93 s\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aWiNq9eUMhUP", + "colab_type": "text" + }, + "source": [ + "`if_exists` option configures what happens when a target table already exists:\n", + "\n", + "- **`error`**: raise an exception.\n", + "- **`overwrite`**: drop it, recreate it, and insert data.\n", + "- **`append`**: insert data. Create if does not exist.\n", + "- **`ignore`**: do nothing." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pgk0yXRxHwFt", + "colab_type": "text" + }, + "source": [ + "### Working with DB-API\n", + "\n", + "pytd implements [Python Database API Specification v2.0](https://www.python.org/dev/peps/pep-0249/) with the help of [prestodb/presto-python-client](https://github.com/prestodb/presto-python-client).\n", + "\n", + "Connect to the API first:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uBQFbriFBBg4", + "colab_type": "code", + "colab": {} + }, + "source": [ + "from pytd.dbapi import connect\n", + "\n", + "conn = connect(pytd.Client(database='sample_datasets'))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b762Rubzb_Hi", + "colab_type": "text" + }, + "source": [ + "`Cursor` defined by the specification allows us to flexibly fetch query results from a custom function:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "81yIhnTnBZxw", + "colab_type": "code", + "outputId": "39061978-8570-43c5-f4fa-f1a3e510c644", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 54 + } + }, + "source": [ + "def query(sql, connection):\n", + " cur = connection.cursor()\n", + " cur.execute(sql)\n", + " rows = cur.fetchall()\n", + " columns = [desc[0] for desc in cur.description]\n", + " return {'data': rows, 'columns': columns}\n", + "\n", + "query('select code, count(1) as cnt from www_access group by 1 order by 2 desc', conn)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'columns': ['code', 'cnt'], 'data': [[200, 4981], [404, 17], [500, 2]]}" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 21 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-YJ0pwwVcLFO", + "colab_type": "text" + }, + "source": [ + "Below is an example of generator-based iterative retrieval, just like [`pandas.DataFrame.iterrows`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iterrows.html):" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "2n7yhi30BfVo", + "colab_type": "code", + "outputId": "4ec2b9e6-ca69-45ee-e82d-9677b0af1922", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + } + }, + "source": [ + "def iterrows(sql, connection):\n", + " cur = connection.cursor()\n", + " cur.execute(sql)\n", + " index = 0\n", + " columns = None\n", + " while True:\n", + " row = cur.fetchone()\n", + " if row is None:\n", + " break\n", + " if columns is None:\n", + " columns = [desc[0] for desc in cur.description]\n", + " yield index, dict(zip(columns, row))\n", + " index += 1\n", + "\n", + "for index, row in iterrows('select code, count(1) as cnt from www_access group by 1 order by 2 desc', conn):\n", + " print(index, row)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0 {'code': 200, 'cnt': 4981}\n", + "1 {'code': 404, 'cnt': 17}\n", + "2 {'code': 500, 'cnt': 2}\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Syyw0Kch3U2V", + "colab_type": "text" + }, + "source": [ + "Reading records row by row helps you to keep low memory consumption because it does not fetch the all records at once.\n", + "\n", + "NOTE: Strongly recoomend using Presto for DB-API, since TD REST API-based implementation actually behaves as *pseudo-*DB-API; the `Cursor` instance internally executes a job on TD and reads all records on the memory at once before the iteration. That's why the warning message is shown:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VImfAnSn8HUP", + "colab_type": "code", + "outputId": "5738da79-fc8b-4b53-99cc-b93c88f14700", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 71 + } + }, + "source": [ + "connect(pytd.Client(database='sample_datasets', default_engine='hive')).cursor()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "returning `tdclient.cursor.Cursor`. This cursor, `Cursor#fetchone` in particular, might behave different from your expectation, because it actually executes a job on Treasure Data and fetches all records at once from the job result.\n" + ], + "name": "stderr" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 23 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IuIjmn5EeqjO", + "colab_type": "text" + }, + "source": [ + "## Integration with pandas\n", + "\n", + "Historically, TD had provided [pandas-td](https://github.com/treasure-data/pandas-td), a package of `pandas.DataFrame`-friendly functions.\n", + "\n", + "As an official alternative to the pandas-td package, you can access to the same functionalities from `pytd.pandas_td`." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "a-ZQs5lNhzY4", + "colab_type": "text" + }, + "source": [ + "### Quick overview" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "AGWbMg0SBh_0", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import pytd.pandas_td as td" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "gxVlFvmQesDk", + "colab_type": "code", + "colab": {} + }, + "source": [ + "engine = td.create_engine('presto:sample_datasets')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "zN4uQ_Xre4UQ", + "colab_type": "code", + "outputId": "7c0a0ccd-d99c-4ba5-d788-7d902b34dbdd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "query = \"\"\"\n", + "select time, close from nasdaq where symbol='AAPL'\n", + "\"\"\"\n", + "\n", + "# Run a query, converting \"time\" to a time series index\n", + "df = td.read_td_query(query, engine, index_col='time', parse_dates={'time': 's'})\n", + "df.head()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
close
time
2012-10-02 16:00:0094.47
2012-10-03 16:00:0095.92
2012-10-04 16:00:0095.26
2012-10-05 16:00:0093.23
2012-10-08 16:00:0091.17
\n", + "
" + ], + "text/plain": [ + " close\n", + "time \n", + "2012-10-02 16:00:00 94.47\n", + "2012-10-03 16:00:00 95.92\n", + "2012-10-04 16:00:00 95.26\n", + "2012-10-05 16:00:00 93.23\n", + "2012-10-08 16:00:00 91.17" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 26 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "tx3mtgAKe8qV", + "colab_type": "code", + "outputId": "4fa4a5f8-8bdb-4621-cf27-53aba7b1c500", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 286 + } + }, + "source": [ + "df.plot()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 27 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "W9dhPM7tg_cK", + "colab_type": "text" + }, + "source": [ + "### Example: `create_engine`" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GHldAfsHhkbZ", + "colab_type": "code", + "outputId": "237b93b4-e637-45d8-b036-ea7dfc80232c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 836 + } + }, + "source": [ + "help(td.create_engine)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Help on function create_engine in module pytd.pandas_td:\n", + "\n", + "create_engine(url, con=None, header=True, show_progress=5.0, clear_progress=True)\n", + " Create a handler for query engine based on a URL.\n", + " \n", + " The following environment variables are used for default connection:\n", + " \n", + " TD_API_KEY API key\n", + " TD_API_SERVER API server (default: ``https://api.treasuredata.com``)\n", + " \n", + " Parameters\n", + " ----------\n", + " url : str\n", + " Engine descriptor in the form \"type://apikey@host/database?params...\"\n", + " Use shorthand notation \"type:database?params...\" for the default connection.\n", + " pytd: \"params\" will be ignored since pytd.QueryEngine does not have any\n", + " extra parameters.\n", + " \n", + " con : :class:`pytd.Client`, optional\n", + " Handler returned by :meth:`pytd.pandas_td.connect`. If not given, default client\n", + " is used.\n", + " \n", + " header : str or bool, default: True\n", + " Prepend comment strings, in the form \"-- comment\", as a header of queries.\n", + " Set False to disable header.\n", + " \n", + " show_progress : double or bool, default: 5.0\n", + " Number of seconds to wait before printing progress.\n", + " Set False to disable progress entirely.\n", + " pytd: This argument will be ignored.\n", + " \n", + " clear_progress : bool, default: True\n", + " If True, clear progress when query completed.\n", + " pytd: This argument will be ignored.\n", + " \n", + " Returns\n", + " -------\n", + " :class:`pytd.query_engine.QueryEngine`\n", + " \n", + " \n", + " Examples\n", + " --------\n", + " \n", + " >>> import pytd.pandas_td as td\n", + " >>> con = td.connect(apikey=apikey, endpoint=\"https://api.treasuredata.com\")\n", + " >>> engine = td.create_engine(\"presto:sample_datasets\")\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "7zaKbwOshHhc", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# presto\n", + "engine = td.create_engine('presto://{0}@api.treasuredata.com/sample_datasets'.format(os.environ['TD_API_KEY']))\n", + "\n", + "# hive\n", + "engine = td.create_engine('hive://{0}@api.treasuredata.com/sample_datasets'.format(os.environ['TD_API_KEY']))" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KjmdD5EMheFD", + "colab_type": "text" + }, + "source": [ + "`create_engine` uses \"default\" connection if apikey and host are omitted. In this case, the environment variables `TD_API_KEY` and `TD_API_SERVER` are used to initialize a connection:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HAIDM4UhhVgV", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# use default connection (TD_API_KEY is used)\n", + "engine = td.create_engine('presto:sample_datasets')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vSQ0qgaoi03j", + "colab_type": "text" + }, + "source": [ + "If you prefer initializing a connection with custom parameters, you can use `connect`:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "52nPV4fdi3Vi", + "colab_type": "code", + "colab": {} + }, + "source": [ + "con = td.connect(apikey=os.environ['TD_API_KEY'],\n", + " endpoint='https://api.treasuredata.com')\n", + "engine = td.create_engine('presto:sample_datasets', con=con)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bjoLjc1whodI", + "colab_type": "text" + }, + "source": [ + "### Example: `read_td_query`" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "UwUK3jldhhow", + "colab_type": "code", + "outputId": "bd0b43fd-4305-4abf-a0ad-7582ed223986", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 989 + } + }, + "source": [ + "help(td.read_td_query)\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Help on function read_td_query in module pytd.pandas_td:\n", + "\n", + "read_td_query(query, engine, index_col=None, parse_dates=None, distributed_join=False, params=None)\n", + " Read Treasure Data query into a DataFrame.\n", + " \n", + " Returns a DataFrame corresponding to the result set of the query string.\n", + " Optionally provide an index_col parameter to use one of the columns as\n", + " the index, otherwise default integer index will be used.\n", + " \n", + " Parameters\n", + " ----------\n", + " query : str\n", + " Query string to be executed.\n", + " \n", + " engine : :class:`pytd.query_engine.QueryEngine`\n", + " Handler returned by create_engine.\n", + " \n", + " index_col : str, optional\n", + " Column name to use as index for the returned DataFrame object.\n", + " \n", + " parse_dates : list or dict, optional\n", + " - List of column names to parse as dates\n", + " - Dict of {column_name: format string} where format string is strftime\n", + " compatible in case of parsing string times or is one of (D, s, ns, ms, us)\n", + " in case of parsing integer timestamps\n", + " \n", + " distributed_join : bool, default: `False`\n", + " (Presto only) If True, distributed join is enabled. If False, broadcast join is\n", + " used.\n", + " See https://prestodb.io/docs/current/release/release-0.77.html\n", + " \n", + " params : dict, optional\n", + " Parameters to pass to execute method. pytd does not support parameter\n", + " ``type`` ('hive', 'presto'), and query type needs to be defined by\n", + " ``engine``.\n", + " \n", + " Available parameters:\n", + " \n", + " - ``db`` (str): use the database\n", + " - ``result_url`` (str): result output URL\n", + " - ``priority`` (int or str): priority\n", + " \n", + " - -2: \"VERY LOW\"\n", + " - -1: \"LOW\"\n", + " - 0: \"NORMAL\"\n", + " - 1: \"HIGH\"\n", + " - 2: \"VERY HIGH\"\n", + " - ``retry_limit`` (int): max number of automatic retries\n", + " - ``wait_interval`` (int): sleep interval until job finish\n", + " - ``wait_callback`` (function): called every interval against job itself\n", + " \n", + " Returns\n", + " -------\n", + " :class:`pandas.DataFrame`\n", + " Query result in a DataFrame\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "8B-SFDl8hs4i", + "colab_type": "code", + "outputId": "4bbbb77b-8159-4e12-a79a-cab21d68ae69", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 286 + } + }, + "source": [ + "query = \"\"\"\n", + "select time, close from nasdaq where symbol='AAPL'\n", + "\"\"\"\n", + "\n", + "# Run a query, converting \"time\" to a time series index\n", + "df = td.read_td_query(query, engine, index_col='time', parse_dates={'time': 's'})\n", + "df.plot()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 33 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Z0nSlemih_Sb", + "colab_type": "text" + }, + "source": [ + "### Example: `read_td_job`" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hZc_k_HUh8fm", + "colab_type": "code", + "outputId": "4acc527a-536a-4430-85e9-83ff5fc80d7e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 598 + } + }, + "source": [ + "help(td.read_td_job)\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Help on function read_td_job in module pytd.pandas_td:\n", + "\n", + "read_td_job(job_id, engine, index_col=None, parse_dates=None)\n", + " Read Treasure Data job result into a DataFrame.\n", + " \n", + " Returns a DataFrame corresponding to the result set of the job.\n", + " This method waits for job completion if the specified job is still running.\n", + " Optionally provide an index_col parameter to use one of the columns as\n", + " the index, otherwise default integer index will be used.\n", + " \n", + " Parameters\n", + " ----------\n", + " job_id : int\n", + " Job ID.\n", + " \n", + " engine : :class:`pytd.query_engine.QueryEngine`\n", + " Handler returned by create_engine.\n", + " \n", + " index_col : str, optional\n", + " Column name to use as index for the returned DataFrame object.\n", + " \n", + " parse_dates : list or dict, optional\n", + " \n", + " - List of column names to parse as dates\n", + " - Dict of {column_name: format string} where format string is strftime\n", + " compatible in case of parsing string times or is one of (D, s, ns, ms, us)\n", + " in case of parsing integer timestamps\n", + " \n", + " Returns\n", + " -------\n", + " :class:`pandas.DataFrame`\n", + " Job result in a dataframe\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "C0BqlMFZiAdi", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Before using read_td_job, you need to issue a job separately\n", + "import tdclient\n", + "\n", + "client = tdclient.Client()\n", + "job = client.query(\"sample_datasets\",\n", + " \"select time, close from nasdaq where symbol='AAPL'\",\n", + " type=\"presto\")" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "AfAT0JaTiFUZ", + "colab_type": "code", + "outputId": "453e5ee6-8e40-4f57-f9c3-d726dfa210c3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 286 + } + }, + "source": [ + "# Get result and convert it to dataframe\n", + "df = td.read_td_job(job.id, engine, index_col='time', parse_dates={'time': 's'})\n", + "df.plot()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nSUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mvOwdkgxiI_H", + "colab_type": "text" + }, + "source": [ + "### Example: `read_td_table`" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "e6wwWNQxiHB_", + "colab_type": "code", + "outputId": "d78a0a94-c525-4448-940d-19be007dacfb", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 717 + } + }, + "source": [ + "help(td.read_td_table)\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Help on function read_td_table in module pytd.pandas_td:\n", + "\n", + "read_td_table(table_name, engine, index_col=None, parse_dates=None, columns=None, time_range=None, limit=10000)\n", + " Read Treasure Data table into a DataFrame.\n", + " \n", + " The number of returned rows is limited by \"limit\" (default 10,000).\n", + " Setting limit=None means all rows. Be careful when you set limit=None\n", + " because your table might be very large and the result does not fit into memory.\n", + " \n", + " Parameters\n", + " ----------\n", + " table_name : str\n", + " Name of Treasure Data table in database.\n", + " \n", + " engine : :class:`pytd.query_engine.QueryEngine`\n", + " Handler returned by create_engine.\n", + " \n", + " index_col : str, optional\n", + " Column name to use as index for the returned DataFrame object.\n", + " \n", + " parse_dates : list or dict, optional\n", + " - List of column names to parse as dates\n", + " - Dict of {column_name: format string} where format string is strftime\n", + " compatible in case of parsing string times or is one of (D, s, ns, ms, us)\n", + " in case of parsing integer timestamps\n", + " \n", + " columns : list, optional\n", + " List of column names to select from table.\n", + " \n", + " time_range : tuple (start, end), optional\n", + " Limit time range to select. \"start\" and \"end\" are one of None, integers,\n", + " strings or datetime objects. \"end\" is exclusive, not included in the result.\n", + " \n", + " limit : int, default: 10,000\n", + " Maximum number of rows to select.\n", + " \n", + " Returns\n", + " -------\n", + " :class:`pandas.DataFrame`\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z9QIrdWuiKTx", + "colab_type": "code", + "outputId": "73fe2a38-68be-48df-996b-30cbd5bc8570", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 513 + } + }, + "source": [ + "# Read all records (up to 10,000 rows by default)\n", + "df = td.read_td_table(\"www_access\", engine)\n", + "df.head()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
userhostpathreferercodeagentsizemethodtime
0None72.207.134.101/category/software/item/books/647200Mozilla/5.0 (compatible; MSIE 9.0; Windows NT ...50GET1412369999
1None112.180.125.94/category/office-200Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKi...126GET1412369987
2None184.87.217.103/category/games/category/electronics200Mozilla/5.0 (Windows NT 6.0; rv:10.0.1) Gecko/...130GET1412369975
3None96.177.215.215/search/?c=Software/category/electronics200Mozilla/4.0 (compatible; MSIE 8.0; Windows NT ...43POST1412369963
4None136.96.100.102/category/computers/category/sports200Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X)...40GET1412369951
\n", + "
" + ], + "text/plain": [ + " user host path ... size method time\n", + "0 None 72.207.134.101 /category/software ... 50 GET 1412369999\n", + "1 None 112.180.125.94 /category/office ... 126 GET 1412369987\n", + "2 None 184.87.217.103 /category/games ... 130 GET 1412369975\n", + "3 None 96.177.215.215 /search/?c=Software ... 43 POST 1412369963\n", + "4 None 136.96.100.102 /category/computers ... 40 GET 1412369951\n", + "\n", + "[5 rows x 9 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 39 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_4BC4LsFiR3X", + "colab_type": "text" + }, + "source": [ + "### Example: `to_td`" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TBaHBy-TiPXH", + "colab_type": "code", + "outputId": "d73ceed5-0be0-4ab0-d33e-6a9aa100f41b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "help(td.to_td)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Help on function to_td in module pytd.pandas_td:\n", + "\n", + "to_td(frame, name, con, if_exists='fail', time_col=None, time_index=None, index=True, index_label=None, chunksize=10000, date_format=None, writer='bulk_import')\n", + " Write a DataFrame to a Treasure Data table.\n", + " \n", + " This method converts the dataframe into a series of key-value pairs\n", + " and send them using the Treasure Data streaming API. The data is divided\n", + " into chunks of rows (default 10,000) and uploaded separately. If upload\n", + " failed, the client retries the process for a certain amount of time\n", + " (max_cumul_retry_delay; default 600 secs). This method may fail and\n", + " raise an exception when retries did not success, in which case the data\n", + " may be partially inserted. Use the bulk import utility if you cannot\n", + " accept partial inserts.\n", + " \n", + " Parameters\n", + " ----------\n", + " frame : :class:`pandas.DataFrame`\n", + " DataFrame to be written.\n", + " \n", + " name : str\n", + " Name of table to be written, in the form 'database.table'.\n", + " \n", + " con : :class:`pytd.Client`\n", + " A client for a Treasure Data account returned by :meth:`pytd.pandas_td.connect`.\n", + " \n", + " if_exists : str, {'error' ('fail'), 'overwrite' ('replace'), 'append', 'ignore'}, default: 'error'\n", + " What happens when a target table already exists. For pandas-td\n", + " compatibility, 'error', 'overwrite', 'append', 'ignore' can\n", + " respectively be:\n", + " \n", + " - fail: If table exists, raise an exception.\n", + " - replace: If table exists, drop it, recreate it, and insert data.\n", + " - append: If table exists, insert data. Create if does not exist.\n", + " - ignore: If table exists, do nothing.\n", + " \n", + " time_col : str, optional\n", + " Column name to use as \"time\" column for the table. Column type must be\n", + " integer (unixtime), datetime, or string. If None is given (default),\n", + " then the current time is used as time values.\n", + " \n", + " time_index : int, optional\n", + " Level of index to use as \"time\" column for the table. Set 0 for a single index.\n", + " This parameter implies index=False.\n", + " \n", + " index : bool, default: True\n", + " Write DataFrame index as a column.\n", + " \n", + " index_label : str or sequence, default: None\n", + " Column label for index column(s). If None is given (default) and index is True,\n", + " then the index names are used. A sequence should be given if the DataFrame uses\n", + " MultiIndex.\n", + " \n", + " chunksize : int, default: 10,000\n", + " Number of rows to be inserted in each chunk from the dataframe.\n", + " pytd: This argument will be ignored.\n", + " \n", + " date_format : str, default: None\n", + " Format string for datetime objects\n", + " \n", + " writer : str, {'bulk_import', 'insert_into', 'spark'}, or :class:`pytd.writer.Writer`, default: 'bulk_import'\n", + " A Writer to choose writing method to Treasure Data. If not given or\n", + " string value, a temporal Writer instance will be created.\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5P-tDkbLiTFx", + "colab_type": "code", + "outputId": "f7439a53-80b2-4707-f0e4-506a56062863", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 142 + } + }, + "source": [ + "import numpy as np\n", + "\n", + "# Create DataFrame with random values\n", + "df = pd.DataFrame(np.random.rand(3, 3), columns=['x', 'y', 'z'])\n", + "df" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
xyz
00.5160700.8270830.213910
10.6934720.2118500.213793
20.5308080.5099350.225180
\n", + "
" + ], + "text/plain": [ + " x y z\n", + "0 0.516070 0.827083 0.213910\n", + "1 0.693472 0.211850 0.213793\n", + "2 0.530808 0.509935 0.225180" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 41 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kHcRvv5ziiVL", + "colab_type": "text" + }, + "source": [ + "If table already exists, `to_td` fails by default:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XxgHxSiWiYtN", + "colab_type": "code", + "outputId": "25842bdf-e7aa-4d15-c161-cba9df28d87d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 327 + } + }, + "source": [ + "# The \"destination\" table already exists due to the above examples \n", + "td.to_td(df, destination, con) " + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "error", + "ename": "RuntimeError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_td\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdestination\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcon\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pytd/pandas_td/__init__.py\u001b[0m in \u001b[0;36mto_td\u001b[0;34m(frame, name, con, if_exists, time_col, time_index, index, index_label, chunksize, date_format, writer)\u001b[0m\n\u001b[1;32m 443\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 444\u001b[0m \u001b[0mdatabase\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msplit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\".\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 445\u001b[0;31m \u001b[0mcon\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_table\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdatabase\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimport_dataframe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframe\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwriter\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 446\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 447\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pytd/table.py\u001b[0m in \u001b[0;36mimport_dataframe\u001b[0;34m(self, dataframe, writer, if_exists, **kwargs)\u001b[0m\n\u001b[1;32m 127\u001b[0m \u001b[0mwriter\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mWriter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_string\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwriter\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 128\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 129\u001b[0;31m \u001b[0mwriter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrite_dataframe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdataframe\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mif_exists\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 130\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mwriter_from_string\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pytd/writer.py\u001b[0m in \u001b[0;36mwrite_dataframe\u001b[0;34m(self, dataframe, table, if_exists, fmt)\u001b[0m\n\u001b[1;32m 287\u001b[0m )\n\u001b[1;32m 288\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 289\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_bulk_import\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtable\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mif_exists\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfmt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 290\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 291\u001b[0m \u001b[0mfp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pytd/writer.py\u001b[0m in \u001b[0;36m_bulk_import\u001b[0;34m(self, table, file_like, if_exists, fmt)\u001b[0m\n\u001b[1;32m 320\u001b[0m raise RuntimeError(\n\u001b[1;32m 321\u001b[0m \"target table '{}.{}' already exists\".format(\n\u001b[0;32m--> 322\u001b[0;31m \u001b[0mtable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdatabase\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtable\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 323\u001b[0m )\n\u001b[1;32m 324\u001b[0m )\n", + "\u001b[0;31mRuntimeError\u001b[0m: target table 'takuti.test_table' already exists" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bMFscyFRjSzV", + "colab_type": "text" + }, + "source": [ + "`if_exists` option allows you to change the behavior:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Rwvi8rFpjNpl", + "colab_type": "code", + "outputId": "dc9ee2d0-1d50-4f9e-91da-e3a63403cf7f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } + }, + "source": [ + "# Set \"if_exists\" to 'replace' or 'append'\n", + "td.to_td(df, destination, con, if_exists='replace')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "uploading data converted into a csv file\n", + "performing a bulk import job\n" + ], + "name": "stderr" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "91IFibXYd5pe", + "colab_type": "text" + }, + "source": [ + "Optionally, you can use a different writer:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "tE-m9p0XeFgy", + "colab_type": "code", + "outputId": "1a972660-810d-4fe3-9bb7-617bc4abba17", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "td.to_td(df, destination, con, if_exists='replace', writer='insert_into')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "column 'index' has non-numeric. The values are stored as 'varchar' type on Treasure Data.\n" + ], + "name": "stderr" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1Kf4xx3_j8n-", + "colab_type": "text" + }, + "source": [ + "Use `index=False` if you don't need to insert DataFrame index:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LaBBYgOKjf4g", + "colab_type": "code", + "colab": {} + }, + "source": [ + "td.to_td(df, destination, con, if_exists='replace', writer='insert_into', index=False)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XRJd5_YPkDUF", + "colab_type": "text" + }, + "source": [ + "`to_td` inserts the current time as \"time\" column. You can pass \"time\" column explicitly by `time_col`:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0GpzGcCIjkuI", + "colab_type": "code", + "colab": {} + }, + "source": [ + "import datetime\n", + "\n", + "# Set \"time\" column explicitly\n", + "df['time'] = datetime.datetime.now()\n", + "\n", + "# Use \"time\" as the time column in Treasure Data\n", + "td.to_td(df, destination, con, if_exists='replace', writer='insert_into', index=False, time_col='time')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ie_CKlvjkOad", + "colab_type": "text" + }, + "source": [ + "If you are using a time series index, set `time_index=0`:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "PqfGif39kQG6", + "colab_type": "code", + "colab": {} + }, + "source": [ + "df = pd.DataFrame(np.random.rand(3, 3), columns=['x', 'y', 'z'])\n", + "\n", + "# Set time series index\n", + "df.index = pd.date_range('2001-01-01', periods=3)\n", + "\n", + "# Use index as the time column in Treasure Data\n", + "td.to_td(df, destination, con, if_exists='replace', writer='insert_into', index=False, time_index=0)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-WA9FTtsR-6H", + "colab_type": "text" + }, + "source": [ + "## Jupyter notebook magic commands\n", + "\n", + "In addition to the basic pandas-td functionalities, pytd supports its IPython magic commands dedicated to TD operations." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "V2PcwdJMkXDv", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%load_ext pytd.pandas_td.ipython" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nOlIyRbvS4wv", + "colab_type": "text" + }, + "source": [ + "Type \"%td\" and press TAB to list magic functions:\n", + "\n", + "![Image](http://i.gyazo.com/ff9d7c5de1b16a21236fa7fb5d47d5a4.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yKioRQzxSQBG", + "colab_type": "text" + }, + "source": [ + "### List functions\n", + "\n", + "`%td_databases` returns the list of databases:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "O8KkVjdG7rID", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%td_databases??" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "tI9UnbfUSCwb", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%td_databases" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "poq6VieDSWjK", + "colab_type": "text" + }, + "source": [ + "`%td_tables` returns the list of tables:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "pYBIIGva9iDz", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%td_tables??" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "zdOLirmWSKGc", + "colab_type": "code", + "outputId": "1f2845cf-6ae9-45d5-babe-71acf6679040", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 371 + } + }, + "source": [ + "%td_tables sample_datasets" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "error", + "ename": "KeyboardInterrupt", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'td_tables sample_datasets'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/IPython/core/interactiveshell.py\u001b[0m in \u001b[0;36mmagic\u001b[0;34m(self, arg_s)\u001b[0m\n\u001b[1;32m 2158\u001b[0m \u001b[0mmagic_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmagic_arg_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marg_s\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpartition\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m' '\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2159\u001b[0m \u001b[0mmagic_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmagic_name\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlstrip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprefilter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mESC_MAGIC\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2160\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun_line_magic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmagic_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmagic_arg_s\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2161\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2162\u001b[0m \u001b[0;31m#-------------------------------------------------------------------------\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/IPython/core/interactiveshell.py\u001b[0m in \u001b[0;36mrun_line_magic\u001b[0;34m(self, magic_name, line)\u001b[0m\n\u001b[1;32m 2079\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'local_ns'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getframe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstack_depth\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mf_locals\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2080\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuiltin_trap\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2081\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2082\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2083\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m\u001b[0m in \u001b[0;36mtd_tables\u001b[0;34m(self, pattern)\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/IPython/core/magic.py\u001b[0m in \u001b[0;36m\u001b[0;34m(f, *a, **k)\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0;31m# but it's overkill for just that one bit of state.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 187\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmagic_deco\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 188\u001b[0;31m \u001b[0mcall\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mlambda\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 189\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcallable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pytd/pandas_td/ipython.py\u001b[0m in \u001b[0;36mtd_tables\u001b[0;34m(self, pattern)\u001b[0m\n\u001b[1;32m 170\u001b[0m values = [\n\u001b[1;32m 171\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 172\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mdb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcon\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlist_databases\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 173\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mt\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcon\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlist_tables\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mre\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msearch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpattern\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0midentifier\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pytd/pandas_td/ipython.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mc\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mdb\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcon\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlist_databases\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 173\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mt\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcon\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlist_tables\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 174\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mre\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msearch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpattern\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0midentifier\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 175\u001b[0m ]\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/pytd/client.py\u001b[0m in \u001b[0;36mlist_tables\u001b[0;34m(self, database)\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdatabase\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0mdatabase\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdatabase\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapi_client\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtables\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdatabase\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 113\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlist_jobs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tdclient/client.py\u001b[0m in \u001b[0;36mtables\u001b[0;34m(self, db_name)\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0ma\u001b[0m \u001b[0mlist\u001b[0m \u001b[0mof\u001b[0m \u001b[0;34m:\u001b[0m\u001b[0;32mclass\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0mtdclient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodels\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTable\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 169\u001b[0m \"\"\"\n\u001b[0;32m--> 170\u001b[0;31m \u001b[0mm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapi\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlist_tables\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdb_name\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 171\u001b[0m return [\n\u001b[1;32m 172\u001b[0m \u001b[0mmodels\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdb_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtable_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tdclient/table_api.py\u001b[0m in \u001b[0;36mlist_tables\u001b[0;34m(self, db)\u001b[0m\n\u001b[1;32m 61\u001b[0m m[\"updated_at\"] = self._parsedate(\n\u001b[1;32m 62\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_or_else\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"updated_at\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"1970-01-01T00:00:00Z\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 63\u001b[0;31m \u001b[0;34m\"%Y-%m-%dT%H:%M:%SZ\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 64\u001b[0m )\n\u001b[1;32m 65\u001b[0m m[\"last_import\"] = self._parsedate(\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tdclient/api.py\u001b[0m in \u001b[0;36m_parsedate\u001b[0;34m(self, s, fmt)\u001b[0m\n\u001b[1;32m 538\u001b[0m \u001b[0;31m# for now, this ignores given format string since API may return date in ambiguous format :(\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 539\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 540\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mdateutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 541\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 542\u001b[0m \u001b[0mlog\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwarning\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Failed to parse date string: %s as %s\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfmt\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/dateutil/parser.py\u001b[0m in \u001b[0;36mparse\u001b[0;34m(timestr, parserinfo, **kwargs)\u001b[0m\n\u001b[1;32m 1180\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparserinfo\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimestr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1181\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1182\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mDEFAULTPARSER\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimestr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1183\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1184\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/dateutil/parser.py\u001b[0m in \u001b[0;36mparse\u001b[0;34m(self, timestr, default, ignoretz, tzinfos, **kwargs)\u001b[0m\n\u001b[1;32m 554\u001b[0m second=0, microsecond=0)\n\u001b[1;32m 555\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 556\u001b[0;31m \u001b[0mres\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mskipped_tokens\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimestr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 557\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 558\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mres\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/dateutil/parser.py\u001b[0m in \u001b[0;36m_parse\u001b[0;34m(self, timestr, dayfirst, yearfirst, fuzzy, fuzzy_with_tokens)\u001b[0m\n\u001b[1;32m 673\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 674\u001b[0m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 675\u001b[0;31m \u001b[0ml\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_timelex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msplit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimestr\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# Splits the timestr into tokens\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 676\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 677\u001b[0m \u001b[0;31m# keep up with the last token skipped so we can recombine\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/dateutil/parser.py\u001b[0m in \u001b[0;36msplit\u001b[0;34m(cls, s)\u001b[0m\n\u001b[1;32m 190\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mclassmethod\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msplit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 192\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 193\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 194\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mclassmethod\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/dateutil/parser.py\u001b[0m in \u001b[0;36m__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 179\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 180\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__next__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 181\u001b[0;31m \u001b[0mtoken\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_token\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 182\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtoken\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QfOgQ8xbSdxd", + "colab_type": "text" + }, + "source": [ + "`%td_jobs` returns the list of recently executed jobs:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4o1r0BrE9lg2", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%td_jobs??" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "dGPT4FT6SasW", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%td_jobs" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1YFzbNiHSkpV", + "colab_type": "text" + }, + "source": [ + "### Use database\n", + "\n", + "`%td_use` is a special function that has side effects. First, it pushes table names into the current namespace:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "I3qYFGSH9rMb", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%td_use??" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "lGsqQ6XHSgg7", + "colab_type": "code", + "outputId": "6ee48379-fed3-4684-bcad-0d15f698664b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + } + }, + "source": [ + "%td_use sample_datasets" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "INFO: import nasdaq\n", + "INFO: import www_access\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MDlozWNvSwDl", + "colab_type": "text" + }, + "source": [ + "By printing a table name, you can describe column names:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "deShobp8StsN", + "colab_type": "code", + "outputId": "440a79f5-d47b-4934-919d-84d0bc4b1ab7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 234 + } + }, + "source": [ + "nasdaq" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
fieldtypealias
0symbolstring
1opendouble
2volumelong
3highdouble
4lowdouble
5closedouble
\n", + "
" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 22 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qdYsvgA7S1E9", + "colab_type": "text" + }, + "source": [ + "Tab completion is also supported:\n", + "\n", + "![Tab completion](http://i.gyazo.com/fde882bc1bd665ba080cbd72222e27cb.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "16I39UQ1S8Yi", + "colab_type": "text" + }, + "source": [ + "As the second effect of `%td_use`, it implicitly changes \"default database\", which is used when you write queries without database names." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Achj1hoNTBOQ", + "colab_type": "text" + }, + "source": [ + "### Query functions\n", + "\n", + "`%td_hive` and `%td_presto` are cell magic functions that run queries:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "9lSofGa69wiW", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%%td_presto??" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "uH83t1RjSxwM", + "colab_type": "code", + "outputId": "0a456698-d6a8-4f4e-fe48-c465b8bc1a9c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 79 + } + }, + "source": [ + "%%td_presto\n", + "select count(1) cnt\n", + "from nasdaq" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cnt
08807279
\n", + "
" + ], + "text/plain": [ + " cnt\n", + "0 8807279" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 23 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JH0N-vSBTQIc", + "colab_type": "text" + }, + "source": [ + "The result of the query can be stored in a variable by `-o`:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fnZ15iEoTNme", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%%td_presto -o df\n", + "select count(1) cnt\n", + "from nasdaq" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "SBHG3R0KTTCS", + "colab_type": "code", + "outputId": "ed76b78c-4fee-43df-930d-5257097aeb88", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 80 + } + }, + "source": [ + "df" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cnt
08807279
\n", + "
" + ], + "text/plain": [ + " cnt\n", + "0 8807279" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 55 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ucQKMvIMTWTd", + "colab_type": "text" + }, + "source": [ + "Or you can save the result into a file by `-O`:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5Ms0kL7sTUQX", + "colab_type": "code", + "outputId": "3cdb7db3-79a4-465d-cdc9-3f9149b1abe6", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "%%td_presto -O './output.csv'\n", + "select count(1) cnt\n", + "from nasdaq" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "INFO: saved to './output.csv'\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Hd-z8n_BTY1W", + "colab_type": "code", + "outputId": "74ffd78d-578e-4bed-e2f9-0254896294b9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } + }, + "source": [ + "!cat output.csv" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "cnt\n", + "8807279\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Hg6n2CgGTc-8", + "colab_type": "text" + }, + "source": [ + "Python-style variable substition is supported:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "iYXyQVUhTZ_s", + "colab_type": "code", + "colab": {} + }, + "source": [ + "start = '2010-01-01'\n", + "end = '2011-01-01'" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "UNdpPW6XTemH", + "colab_type": "code", + "outputId": "eda73203-489c-45a2-f344-c08fdc047851", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 80 + } + }, + "source": [ + "%%td_presto\n", + "select count(1) cnt\n", + "from nasdaq\n", + "where td_time_range(time, '{start}', '{end}')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cnt
0503399
\n", + "
" + ], + "text/plain": [ + " cnt\n", + "0 503399" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 59 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7hAe1zZgTiK7", + "colab_type": "text" + }, + "source": [ + "You can preview the actual query by `--dry-run` (or `-n`):" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "MQhosla8TgF4", + "colab_type": "code", + "outputId": "7445149c-d3b8-4e35-e7c9-f8142565aa17", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 153 + } + }, + "source": [ + "%%td_presto -n\n", + "select count(1) cnt\n", + "from nasdaq\n", + "where td_time_range(time, '{start}', '{end}')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "
# translated code\n",
+              "_q = '''\n",
+              "select count(1) cnt\n",
+              "from nasdaq\n",
+              "where td_time_range(time, '2010-01-01', '2011-01-01')\n",
+              "'''\n",
+              "_e = pytd.pandas_td.create_engine('presto:sample_datasets')\n",
+              "_d = pytd.pandas_td.read_td_query(_q, _e)\n",
+              "
\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8h_xSwdP_QP_", + "colab_type": "text" + }, + "source": [ + "Note that the `time` values of tables in `sample_datasets` may different depending on your TD site. If your endpoint is different from `'https://api.treasuredata.com'`, check actual `time` values first of all." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "14RhpbFLTpup", + "colab_type": "text" + }, + "source": [ + "#### Time-series index\n", + "\n", + "With magic functions, \"time\" column is converted into time-series index automatically. You can use `td_date_trunc()` or `td_time_format()` in combination with `GROUP BY` for aggregation: " + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Nuc2Eka-TmXG", + "colab_type": "code", + "outputId": "ca91367f-7f2b-48ae-ed4a-efff7928df90", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 173 + } + }, + "source": [ + "%%td_presto\n", + "select\n", + " -- Time-series index (yearly)\n", + " td_date_trunc('year', time) time,\n", + "\n", + " -- Same as above\n", + " -- td_time_format(time, 'yyyy-01-01') time,\n", + "\n", + " count(1) cnt\n", + "from\n", + " nasdaq\n", + "group by\n", + " 1\n", + "limit\n", + " 3" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cnt
time
1984-01-0149754
2009-01-01479343
1986-01-0163746
\n", + "
" + ], + "text/plain": [ + " cnt\n", + "time \n", + "1984-01-01 49754\n", + "2009-01-01 479343\n", + "1986-01-01 63746" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 61 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "geGZuaWwTzXO", + "colab_type": "text" + }, + "source": [ + "#### Plotting\n", + "\n", + "`--plot` is a convenient option for plotting. The first column represents x-axis. Other columns represent y-axis:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "TnxoTuzeTvkd", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%matplotlib inline" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "n_X2JTYnT2R8", + "colab_type": "code", + "outputId": "58231d27-c9ca-40f6-b1c2-ef09785e7994", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 290 + } + }, + "source": [ + "%%td_presto --plot\n", + "select\n", + " -- x-axis\n", + " td_date_trunc('year', time) time,\n", + "\n", + " -- y-axis\n", + " min(low) low,\n", + " max(high) high\n", + "from\n", + " nasdaq\n", + "where\n", + " symbol = 'AAPL'\n", + "group by\n", + " 1" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 63 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n0GSvlFK9wP8Hd9pKy0C2SbcAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "t4SOzLsVT8s6", + "colab_type": "text" + }, + "source": [ + "In practice, however, it is more efficient to execute rough calculation on the server side and store the result into a variable for further analysis:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hLdeKoMJT3bF", + "colab_type": "code", + "colab": {} + }, + "source": [ + "%%td_presto -o df\n", + "select\n", + " -- daily summary\n", + " td_date_trunc('day', time) time,\n", + "\n", + " min(low) low,\n", + " max(high) high,\n", + " sum(volume) volume\n", + "from\n", + " nasdaq\n", + "where\n", + " symbol = 'AAPL'\n", + "group by\n", + " 1" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "DjO3h7t7T-VE", + "colab_type": "code", + "outputId": "d2880a8c-6b69-428a-f312-a4f7a22f26f0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + } + }, + "source": [ + "# Use resample for local calculation\n", + "df['high'].resample('1m').max().plot()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 65 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "A8WyDeNDUCK3", + "colab_type": "text" + }, + "source": [ + "`--plot` provides a shortcut way of plotting \"pivot charts\", as a combination of `pivot()` and `plot()`. If the query result contains non-numeric columns, or column names ending with \"_id\", they are used as `columns` parameter:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "rp1P5xKVT_rM", + "colab_type": "code", + "outputId": "a0cee368-cd01-40cf-e4a0-dfbd222a69f0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 300 + } + }, + "source": [ + "%%td_presto --plot\n", + "select\n", + " -- x-axis\n", + " td_date_trunc('month', time) time,\n", + "\n", + " -- columns\n", + " symbol,\n", + "\n", + " -- y-axis\n", + " avg(close) close \n", + "from\n", + " nasdaq\n", + "where\n", + " symbol in ('AAPL', 'MSFT')\n", + "group by\n", + " 1, 2" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 66 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nCQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xtMa9gXkULar", + "colab_type": "text" + }, + "source": [ + "#### Pivot tables\n", + "\n", + "`--pivot` creates a pivot table from the result of query. Like `--plot`, the first column represents index and other non-numeric columns represents new columns:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uN0FMpFFUI3O", + "colab_type": "code", + "outputId": "b47168b4-3d68-41e8-be7f-cc82c998685d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "%%td_presto --pivot\n", + "select\n", + " td_date_trunc('year', time) time,\n", + " symbol,\n", + " avg(close) close \n", + "from\n", + " nasdaq\n", + "where\n", + " td_time_range(time, '2010', '2015')\n", + " and symbol like 'AA%'\n", + "group by\n", + " 1, 2" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
symbolAAITAALAAMEAAOIAAONAAPLAAVLAAWWAAXJ
time
2010-01-01NaNNaN1.533376NaN6.96961237.134102NaN50.65477557.195677
2011-01-01NaNNaN2.011771NaN8.94941352.000335NaN51.99396857.992659
2012-01-0127.083288NaN2.702549NaN8.72184182.292882NaN46.91522655.078226
2013-01-0128.86531825.7543753.71891412.67707514.90499667.518991NaN43.47771858.670437
2014-01-0133.14718234.2686353.84564520.00951619.85723886.40296029.48512235.34580661.125349
\n", + "
" + ], + "text/plain": [ + "symbol AAIT AAL AAME ... AAVL AAWW AAXJ\n", + "time ... \n", + "2010-01-01 NaN NaN 1.533376 ... NaN 50.654775 57.195677\n", + "2011-01-01 NaN NaN 2.011771 ... NaN 51.993968 57.992659\n", + "2012-01-01 27.083288 NaN 2.702549 ... NaN 46.915226 55.078226\n", + "2013-01-01 28.865318 25.754375 3.718914 ... NaN 43.477718 58.670437\n", + "2014-01-01 33.147182 34.268635 3.845645 ... 29.485122 35.345806 61.125349\n", + "\n", + "[5 rows x 9 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 67 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "01uxgQ-_UTqh", + "colab_type": "text" + }, + "source": [ + "#### Verbose output\n", + "\n", + "By passing `-v` (`--verbose`) option, you can print pseudo Python code that was executed by the magic function." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-UaEhYq9URBW", + "colab_type": "code", + "outputId": "dd9126ed-15ff-4a41-adf6-795d25481efd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 552 + } + }, + "source": [ + "%%td_presto -v --plot\n", + "select\n", + " td_date_trunc('year', time) time,\n", + " sum(volume) volume\n", + "from\n", + " nasdaq\n", + "group by\n", + " 1" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "
# translated code\n",
+              "_q = '''\n",
+              "select\n",
+              "    td_date_trunc('year', time) time,\n",
+              "    sum(volume) volume\n",
+              "from\n",
+              "    nasdaq\n",
+              "group by\n",
+              "    1\n",
+              "'''\n",
+              "_e = pytd.pandas_td.create_engine('presto:sample_datasets', show_progress=True, clear_progress=False)\n",
+              "_d = pytd.pandas_td.read_td_query(_q, _e)\n",
+              "_d['time'] = pd.to_datetime(_d['time'], unit='s')\n",
+              "_d.set_index('time', inplace=True)\n",
+              "_d.plot()\n",
+              "
\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 68 + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEHCAYAAABP3uaxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xd4HOW59/HvvapWt4qbijvuXbaJ\nDZhAACf0YkooSYBwCOEEThLSOzknEHLSCPDiQAIcQjUECC0QMDHVvWBsGTfZlrtWfVVW2n3eP2ZW\nXoxsaSXN7qx0f65Ll6Xd2Z3b0uqnZ5955h4xxqCUUqpv88S6AKWUUs7TsFdKqX5Aw14ppfoBDXul\nlOoHNOyVUqof0LBXSql+wFVhLyJ/EZFDIrKxC9ueIiJrRKRNRC456r5XRaRGRF50rlqllIofrgp7\n4CFgYRe33Q18GXisg/vuAq7unZKUUir+uSrsjTHLgKrw20RktD1SXy0ib4vIeHvbcmPMBiDYwfO8\nAdRHpWillIoDibEuoAsWAzcaY7aKyFzgXuC0GNeklFJxxdVhLyIZwDzgaREJ3ZwSu4qUUio+uTrs\nsaaZaowx02NdiFJKxTNXzdkfzRhTB+wUkUUAYpkW47KUUiruiJu6XorI48CpQD5wEPgp8CZwHzAU\nSAKeMMb8QkRmA38HBgLNwAFjzCT7ed4GxgMZgBe4zhjzz+j+b5RSyj1cFfZKKaWc4eppHKWUUr1D\nw14ppfoB16zGyc/PNyNGjIh1GUopFVdWr15daYwp6Gw714T9iBEjWLVqVazLUEqpuCIiu7qynU7j\nKKVUP6Bhr5RS/YCGvVJK9QOumbPvSGtrKxUVFTQ3N8e6FFdKTU2lqKiIpKSkWJeilHI5V4d9RUUF\nmZmZjBgxgrBGaAowxuD1eqmoqGDkyJGxLkcp5XKunsZpbm4mLy9Pg74DIkJeXp6+61HKVtPop6K6\nMdZluJarwx7QoD8O/d4odcSPn/+IU+96i3vf2kYgqG1gjuZo2ItIjogsEZEyEdksIp9xcn+xVF5e\nzuTJk2NdhlL9kjGGD3Z4GZCUwK9f3cJVDyxnf21TrMtyFadH9n8AXjXGjAemAZsd3p9Sqh+qqG7i\ncH0L31k4jl9fMpX1FTUs/P3bvLpxf6xLcw3Hwl5EsoFTgAcBjDF+Y0yNU/tzwve+9z3uueee9q9/\n9rOfcdddd3HbbbcxefJkpkyZwpNPPvmpxz300EPcfPPN7V+fc845vPXWWwBkZGRw2223MWnSJD73\nuc+xYsUKTj31VEaNGsULL7wAQCAQ4LbbbmP27NlMnTqV+++/39n/qFJxbs3uagBmDh/IpaXFvPSN\nkxmel8aNj67h+89+SKO/LcYVxp6Tq3FGAoeBv9oXHFkN3GKM8YU2EJEbgBsASkpKjvtkP//HR2za\nV9erBU4clsVPz510zPsvu+wybr31Vr7+9a8D8NRTT/Hd736X1157jfXr11NZWcns2bM55ZRTurxP\nn8/Haaedxl133cWFF17Ij370I15//XU2bdrEl770Jc477zwefPBBsrOzWblyJS0tLcyfP58zzzxT\nV92ouPfqxv38aek2nv3afJITe2+suXpXNenJCYwbnAnAyPx0ltw4j9++/jH3L9vOip1e/nD5DCYX\nZvfaPuONk9M4icBM4D5jzAzAB3wvfANjzGJjTKkxprSgoNM+PlE3Y8YMDh06xL59+1i/fj0DBw5k\n3bp1XHHFFSQkJDB48GAWLFjAypUru/ycycnJLFy4EIApU6awYMECkpKSmDJlCuXl5QC89tprPPLI\nI0yfPp25c+fi9XrZunWrE/9FpaJq9a5qNu6tY609Eu8ta3ZXM604h8SEI5GWnOjhe58fz9+um0tD\nSxsX3vsuyz4+3Kv7jSdOjuwrgApjzHL76yUcFfaRON4I3EmLFi1iyZIlHDhwgMsuu4ydO3d2+pjE\nxESCwWD71+HLI5OSktpX0Xg8HlJSUto/b2uz3moaY7j77rs566yzevO/olTMeX1+AN7eWsncUXm9\n8pyN/jY276/nawtGd3j/vDH5vHrLKZxz9zssXraDU05w38AyGhwb2RtjDgB7RGScfdPpwCan9ueU\nyy67jCeeeIIlS5awaNEiTj75ZJ588kkCgQCHDx9m2bJlzJkz5xOPGTFiBOvWrSMYDLJnzx5WrFgR\n0T7POuss7rvvPlpbWwH4+OOP8fl8nTxKKferag/73hthr99TSyBomDV84DG3GZiezKLSIt7dXsne\nmv65SsfpM2j/E/ibiCQDO4CvOLy/Xjdp0iTq6+spLCxk6NChXHjhhbz//vtMmzYNEeHXv/41Q4YM\naZ+CAZg/fz4jR45k4sSJTJgwgZkzZ0a0z+uvv57y8nJmzpyJMYaCggKee+65Xv6fKRV93gYr7Dfs\n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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z88y24XPUYJo", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file