{
  "paragraphs": [
    {
      "title": "Introduction",
      "text": "%md\n\nIPython is more powerful than the default python interpreter with extra functionality. You can use IPython with Python2 or Python3 which depends on which python you set in `zeppelin.python`. This tutorial will teach you how to use IPython and what kind of fancy feature IPython provides for you. ",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 05:55:56.511",
      "progress": 0,
      "config": {
        "tableHide": false,
        "editorSetting": {
          "language": "markdown",
          "editOnDblClick": true,
          "completionKey": "TAB",
          "completionSupport": false
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/markdown",
        "fontSize": 9.0,
        "editorHide": true,
        "results": {},
        "enabled": true,
        "title": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "HTML",
            "data": "\u003cdiv class\u003d\"markdown-body\"\u003e\n\u003cp\u003eIPython is more powerful than the default python interpreter with extra functionality. You can use IPython with Python2 or Python3 which depends on which python you set in \u003ccode\u003ezeppelin.python\u003c/code\u003e. This tutorial will teach you how to use IPython and what kind of fancy feature IPython provides for you.\u003c/p\u003e\n\n\u003c/div\u003e"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128399_1705920905",
      "id": "20180118-105449_1130638270",
      "dateCreated": "2020-02-05 14:12:08.399",
      "dateStarted": "2021-07-26 05:55:56.513",
      "dateFinished": "2021-07-26 05:55:56.524",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%md\n\n# Prerequisite\n\nFirst you need to use Zeppelin 0.8.0 or afterwards. You need to install the following 2 packages to make IPython work in Zeppelin.\n\n* jupyter `pip install jupyter`\n* grpcio `pip install grpcio`\n* protobuf `pip install protobuf`\n\nIf you have anaconda installed, then you just need to install `grpcio` and `protobuf` as Jupyter is already included in anaconda.\n\n",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:33.818",
      "progress": 0,
      "config": {
        "tableHide": false,
        "editorSetting": {
          "language": "text",
          "editOnDblClick": false,
          "completionKey": "TAB"
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/text",
        "fontSize": 9.0,
        "editorHide": true,
        "results": {},
        "enabled": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "HTML",
            "data": "\u003cdiv class\u003d\"markdown-body\"\u003e\n\u003ch1\u003ePrerequisite\u003c/h1\u003e\n\u003cp\u003eFirst you need to use Zeppelin 0.8.0 or afterwards. You need to install the following 2 packages to make IPython work in Zeppelin.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ejupyter \u003ccode\u003epip install jupyter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003egrpcio \u003ccode\u003epip install grpcio\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eprotobuf \u003ccode\u003epip install protobuf\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you have anaconda installed, then you just need to install \u003ccode\u003egrpcio\u003c/code\u003e and \u003ccode\u003eprotobuf\u003c/code\u003e as Jupyter is already included in anaconda.\u003c/p\u003e\n\n\u003c/div\u003e"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128401_-91751836",
      "id": "20180118-105734_546968647",
      "dateCreated": "2020-02-05 14:12:08.401",
      "dateStarted": "2021-07-26 03:15:33.820",
      "dateFinished": "2021-07-26 03:15:33.833",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%md\n\n# How to use IPython\n\nAfter you get the above prerequisites installed, you can use IPython in Zeppelin via `%python.ipython` or `%spark.ipyspark`. If you want to make IPython as your default interpreter via `%python` or `%spark.pyspark`, then you can configure `zeppelin.python.useIPython` as `true` in python\u0027s interpreter setting or `zeppelin.pyspark.useIPython` as `true` in spark\u0027s interpreter setting. So that Zeppelin will use IPython as the default python interpreter, and will fall back to the old python interpreter if the IPython prerequisite is not met.\n",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 05:56:56.590",
      "progress": 0,
      "config": {
        "tableHide": false,
        "editorSetting": {
          "language": "markdown",
          "editOnDblClick": true,
          "completionKey": "TAB",
          "completionSupport": false
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/markdown",
        "fontSize": 9.0,
        "editorHide": true,
        "results": {},
        "enabled": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "HTML",
            "data": "\u003cdiv class\u003d\"markdown-body\"\u003e\n\u003ch1\u003eHow to use IPython\u003c/h1\u003e\n\u003cp\u003eAfter you get the above prerequisites installed, you can use IPython in Zeppelin via \u003ccode\u003e%python.ipython\u003c/code\u003e or \u003ccode\u003e%spark.ipyspark\u003c/code\u003e. If you want to make IPython as your default interpreter via \u003ccode\u003e%python\u003c/code\u003e or \u003ccode\u003e%spark.pyspark\u003c/code\u003e, then you can configure \u003ccode\u003ezeppelin.python.useIPython\u003c/code\u003e as \u003ccode\u003etrue\u003c/code\u003e in python\u0026rsquo;s interpreter setting or \u003ccode\u003ezeppelin.pyspark.useIPython\u003c/code\u003e as \u003ccode\u003etrue\u003c/code\u003e in spark\u0026rsquo;s interpreter setting. So that Zeppelin will use IPython as the default python interpreter, and will fall back to the old python interpreter if the IPython prerequisite is not met.\u003c/p\u003e\n\n\u003c/div\u003e"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128402_-1251111399",
      "id": "20180118-112614_44484642",
      "dateCreated": "2020-02-05 14:12:08.402",
      "dateStarted": "2021-07-26 05:56:28.000",
      "dateFinished": "2021-07-26 05:56:28.019",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%md\n\n# IPython Help\n\nThere\u0027re 2 approaches to for getting python help in IPython. \n* Use `?` after the python object,\n* Use `help` function",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:34.023",
      "progress": 0,
      "config": {
        "tableHide": false,
        "editorSetting": {
          "language": "markdown",
          "editOnDblClick": true,
          "completionKey": "TAB"
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/markdown",
        "fontSize": 9.0,
        "editorHide": true,
        "results": {},
        "enabled": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "HTML",
            "data": "\u003cdiv class\u003d\"markdown-body\"\u003e\n\u003ch1\u003eIPython Help\u003c/h1\u003e\n\u003cp\u003eThere\u0026rsquo;re 2 approaches to for getting python help in IPython.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003e?\u003c/code\u003e after the python object,\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ehelp\u003c/code\u003e function\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/div\u003e"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128402_-1077704099",
      "id": "20180118-111958_1561079624",
      "dateCreated": "2020-02-05 14:12:08.402",
      "dateStarted": "2021-07-26 03:15:34.025",
      "dateFinished": "2021-07-26 03:15:34.032",
      "status": "FINISHED"
    },
    {
      "title": "Get Python Help (1)",
      "text": "%python.ipython\n\nimport sys\n\nsys?",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:34.125",
      "progress": 0,
      "config": {
        "editorSetting": {
          "language": "python",
          "editOnDblClick": false,
          "completionKey": "TAB",
          "completionSupport": true
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/python",
        "fontSize": 9.0,
        "results": {},
        "enabled": true,
        "title": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "TEXT",
            "data": "\u001b[0;31mType:\u001b[0m        module\n\u001b[0;31mString form:\u001b[0m \u003cmodule \u0027sys\u0027 (built-in)\u003e\n\u001b[0;31mDocstring:\u001b[0m  \nThis module provides access to some objects used or maintained by the\ninterpreter and to functions that interact strongly with the interpreter.\n\nDynamic objects:\n\nargv -- command line arguments; argv[0] is the script pathname if known\npath -- module search path; path[0] is the script directory, else \u0027\u0027\nmodules -- dictionary of loaded modules\n\ndisplayhook -- called to show results in an interactive session\nexcepthook -- called to handle any uncaught exception other than SystemExit\n  To customize printing in an interactive session or to install a custom\n  top-level exception handler, assign other functions to replace these.\n\nstdin -- standard input file object; used by input()\nstdout -- standard output file object; used by print()\nstderr -- standard error object; used for error messages\n  By assigning other file objects (or objects that behave like files)\n  to these, it is possible to redirect all of the interpreter\u0027s I/O.\n\nlast_type -- type of last uncaught exception\nlast_value -- value of last uncaught exception\nlast_traceback -- traceback of last uncaught exception\n  These three are only available in an interactive session after a\n  traceback has been printed.\n\nStatic objects:\n\nbuiltin_module_names -- tuple of module names built into this interpreter\ncopyright -- copyright notice pertaining to this interpreter\nexec_prefix -- prefix used to find the machine-specific Python library\nexecutable -- absolute path of the executable binary of the Python interpreter\nfloat_info -- a named tuple with information about the float implementation.\nfloat_repr_style -- string indicating the style of repr() output for floats\nhash_info -- a named tuple with information about the hash algorithm.\nhexversion -- version information encoded as a single integer\nimplementation -- Python implementation information.\nint_info -- a named tuple with information about the int implementation.\nmaxsize -- the largest supported length of containers.\nmaxunicode -- the value of the largest Unicode code point\nplatform -- platform identifier\nprefix -- prefix used to find the Python library\nthread_info -- a named tuple with information about the thread implementation.\nversion -- the version of this interpreter as a string\nversion_info -- version information as a named tuple\n__stdin__ -- the original stdin; don\u0027t touch!\n__stdout__ -- the original stdout; don\u0027t touch!\n__stderr__ -- the original stderr; don\u0027t touch!\n__displayhook__ -- the original displayhook; don\u0027t touch!\n__excepthook__ -- the original excepthook; don\u0027t touch!\n\nFunctions:\n\ndisplayhook() -- print an object to the screen, and save it in builtins._\nexcepthook() -- print an exception and its traceback to sys.stderr\nexc_info() -- return thread-safe information about the current exception\nexit() -- exit the interpreter by raising SystemExit\ngetdlopenflags() -- returns flags to be used for dlopen() calls\ngetprofile() -- get the global profiling function\ngetrefcount() -- return the reference count for an object (plus one :-)\ngetrecursionlimit() -- return the max recursion depth for the interpreter\ngetsizeof() -- return the size of an object in bytes\ngettrace() -- get the global debug tracing function\nsetcheckinterval() -- control how often the interpreter checks for events\nsetdlopenflags() -- set the flags to be used for dlopen() calls\nsetprofile() -- set the global profiling function\nsetrecursionlimit() -- set the max recursion depth for the interpreter\nsettrace() -- set the global debug tracing function\n"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128402_-688763859",
      "id": "20180118-112246_474555672",
      "dateCreated": "2020-02-05 14:12:08.403",
      "dateStarted": "2021-07-26 03:15:34.130",
      "dateFinished": "2021-07-26 03:15:39.001",
      "status": "FINISHED"
    },
    {
      "title": "Get Python Help (2)",
      "text": "%python.ipython\n\nimport sys\n\nhelp(sys)",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:39.031",
      "progress": 0,
      "config": {
        "editorSetting": {
          "language": "python",
          "editOnDblClick": false,
          "completionKey": "TAB",
          "completionSupport": true
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/python",
        "fontSize": 9.0,
        "results": {},
        "enabled": true,
        "title": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "TEXT",
            "data": "Help on built-in module sys:\n\nNAME\n    sys\n\nMODULE REFERENCE\n    https://docs.python.org/3.7/library/sys\n    \n    The following documentation is automatically generated from the Python\n    source files.  It may be incomplete, incorrect or include features that\n    are considered implementation detail and may vary between Python\n    implementations.  When in doubt, consult the module reference at the\n    location listed above.\n\nDESCRIPTION\n    This module provides access to some objects used or maintained by the\n    interpreter and to functions that interact strongly with the interpreter.\n    \n    Dynamic objects:\n    \n    argv -- command line arguments; argv[0] is the script pathname if known\n    path -- module search path; path[0] is the script directory, else \u0027\u0027\n    modules -- dictionary of loaded modules\n    \n    displayhook -- called to show results in an interactive session\n    excepthook -- called to handle any uncaught exception other than SystemExit\n      To customize printing in an interactive session or to install a custom\n      top-level exception handler, assign other functions to replace these.\n    \n    stdin -- standard input file object; used by input()\n    stdout -- standard output file object; used by print()\n    stderr -- standard error object; used for error messages\n      By assigning other file objects (or objects that behave like files)\n      to these, it is possible to redirect all of the interpreter\u0027s I/O.\n    \n    last_type -- type of last uncaught exception\n    last_value -- value of last uncaught exception\n    last_traceback -- traceback of last uncaught exception\n      These three are only available in an interactive session after a\n      traceback has been printed.\n    \n    Static objects:\n    \n    builtin_module_names -- tuple of module names built into this interpreter\n    copyright -- copyright notice pertaining to this interpreter\n    exec_prefix -- prefix used to find the machine-specific Python library\n    executable -- absolute path of the executable binary of the Python interpreter\n    float_info -- a named tuple with information about the float implementation.\n    float_repr_style -- string indicating the style of repr() output for floats\n    hash_info -- a named tuple with information about the hash algorithm.\n    hexversion -- version information encoded as a single integer\n    implementation -- Python implementation information.\n    int_info -- a named tuple with information about the int implementation.\n    maxsize -- the largest supported length of containers.\n    maxunicode -- the value of the largest Unicode code point\n    platform -- platform identifier\n    prefix -- prefix used to find the Python library\n    thread_info -- a named tuple with information about the thread implementation.\n    version -- the version of this interpreter as a string\n    version_info -- version information as a named tuple\n    __stdin__ -- the original stdin; don\u0027t touch!\n    __stdout__ -- the original stdout; don\u0027t touch!\n    __stderr__ -- the original stderr; don\u0027t touch!\n    __displayhook__ -- the original displayhook; don\u0027t touch!\n    __excepthook__ -- the original excepthook; don\u0027t touch!\n    \n    Functions:\n    \n    displayhook() -- print an object to the screen, and save it in builtins._\n    excepthook() -- print an exception and its traceback to sys.stderr\n    exc_info() -- return thread-safe information about the current exception\n    exit() -- exit the interpreter by raising SystemExit\n    getdlopenflags() -- returns flags to be used for dlopen() calls\n    getprofile() -- get the global profiling function\n    getrefcount() -- return the reference count for an object (plus one :-)\n    getrecursionlimit() -- return the max recursion depth for the interpreter\n    getsizeof() -- return the size of an object in bytes\n    gettrace() -- get the global debug tracing function\n    setcheckinterval() -- control how often the interpreter checks for events\n    setdlopenflags() -- set the flags to be used for dlopen() calls\n    setprofile() -- set the global profiling function\n    setrecursionlimit() -- set the max recursion depth for the interpreter\n    settrace() -- set the global debug tracing function\n\nFUNCTIONS\n    __breakpointhook__ \u003d breakpointhook(...)\n        breakpointhook(*args, **kws)\n        \n        This hook function is called by built-in breakpoint().\n    \n    __displayhook__ \u003d displayhook(...)\n        displayhook(object) -\u003e None\n        \n        Print an object to sys.stdout and also save it in builtins._\n    \n    __excepthook__ \u003d excepthook(...)\n        excepthook(exctype, value, traceback) -\u003e None\n        \n        Handle an exception by displaying it with a traceback on sys.stderr.\n    \n    breakpointhook(...)\n        breakpointhook(*args, **kws)\n        \n        This hook function is called by built-in breakpoint().\n    \n    call_tracing(...)\n        call_tracing(func, args) -\u003e object\n        \n        Call func(*args), while tracing is enabled.  The tracing state is\n        saved, and restored afterwards.  This is intended to be called from\n        a debugger from a checkpoint, to recursively debug some other code.\n    \n    callstats(...)\n        callstats() -\u003e tuple of integers\n        \n        Return a tuple of function call statistics, if CALL_PROFILE was defined\n        when Python was built.  Otherwise, return None.\n        \n        When enabled, this function returns detailed, implementation-specific\n        details about the number of function calls executed. The return value is\n        a 11-tuple where the entries in the tuple are counts of:\n        0. all function calls\n        1. calls to PyFunction_Type objects\n        2. PyFunction calls that do not create an argument tuple\n        3. PyFunction calls that do not create an argument tuple\n           and bypass PyEval_EvalCodeEx()\n        4. PyMethod calls\n        5. PyMethod calls on bound methods\n        6. PyType calls\n        7. PyCFunction calls\n        8. generator calls\n        9. All other calls\n        10. Number of stack pops performed by call_function()\n    \n    exc_info(...)\n        exc_info() -\u003e (type, value, traceback)\n        \n        Return information about the most recent exception caught by an except\n        clause in the current stack frame or in an older stack frame.\n    \n    exit(...)\n        exit([status])\n        \n        Exit the interpreter by raising SystemExit(status).\n        If the status is omitted or None, it defaults to zero (i.e., success).\n        If the status is an integer, it will be used as the system exit status.\n        If it is another kind of object, it will be printed and the system\n        exit status will be one (i.e., failure).\n    \n    get_asyncgen_hooks(...)\n        get_asyncgen_hooks()\n        \n        Return a namedtuple of installed asynchronous generators hooks (firstiter, finalizer).\n    \n    get_coroutine_origin_tracking_depth()\n        Check status of origin tracking for coroutine objects in this thread.\n    \n    get_coroutine_wrapper(...)\n        get_coroutine_wrapper()\n        \n        Return the wrapper for coroutine objects set by sys.set_coroutine_wrapper.\n    \n    getallocatedblocks(...)\n        getallocatedblocks() -\u003e integer\n        \n        Return the number of memory blocks currently allocated, regardless of their\n        size.\n    \n    getcheckinterval(...)\n        getcheckinterval() -\u003e current check interval; see setcheckinterval().\n    \n    getdefaultencoding(...)\n        getdefaultencoding() -\u003e string\n        \n        Return the current default string encoding used by the Unicode \n        implementation.\n    \n    getdlopenflags(...)\n        getdlopenflags() -\u003e int\n        \n        Return the current value of the flags that are used for dlopen calls.\n        The flag constants are defined in the os module.\n    \n    getfilesystemencodeerrors(...)\n        getfilesystemencodeerrors() -\u003e string\n        \n        Return the error mode used to convert Unicode filenames in\n        operating system filenames.\n    \n    getfilesystemencoding(...)\n        getfilesystemencoding() -\u003e string\n        \n        Return the encoding used to convert Unicode filenames in\n        operating system filenames.\n    \n    getprofile(...)\n        getprofile()\n        \n        Return the profiling function set with sys.setprofile.\n        See the profiler chapter in the library manual.\n    \n    getrecursionlimit(...)\n        getrecursionlimit()\n        \n        Return the current value of the recursion limit, the maximum depth\n        of the Python interpreter stack.  This limit prevents infinite\n        recursion from causing an overflow of the C stack and crashing Python.\n    \n    getrefcount(...)\n        getrefcount(object) -\u003e integer\n        \n        Return the reference count of object.  The count returned is generally\n        one higher than you might expect, because it includes the (temporary)\n        reference as an argument to getrefcount().\n    \n    getsizeof(...)\n        getsizeof(object, default) -\u003e int\n        \n        Return the size of object in bytes.\n    \n    getswitchinterval(...)\n        getswitchinterval() -\u003e current thread switch interval; see setswitchinterval().\n    \n    gettrace(...)\n        gettrace()\n        \n        Return the global debug tracing function set with sys.settrace.\n        See the debugger chapter in the library manual.\n    \n    intern(...)\n        intern(string) -\u003e string\n        \n        ``Intern\u0027\u0027 the given string.  This enters the string in the (global)\n        table of interned strings whose purpose is to speed up dictionary lookups.\n        Return the string itself or the previously interned string object with the\n        same value.\n    \n    is_finalizing(...)\n        is_finalizing()\n        Return True if Python is exiting.\n    \n    set_asyncgen_hooks(...)\n        set_asyncgen_hooks(*, firstiter\u003dNone, finalizer\u003dNone)\n        \n        Set a finalizer for async generators objects.\n    \n    set_coroutine_origin_tracking_depth(depth)\n        Enable or disable origin tracking for coroutine objects in this thread.\n        \n        Coroutine objects will track \u0027depth\u0027 frames of traceback information about\n        where they came from, available in their cr_origin attribute. Set depth of 0\n        to disable.\n    \n    set_coroutine_wrapper(...)\n        set_coroutine_wrapper(wrapper)\n        \n        Set a wrapper for coroutine objects.\n    \n    setcheckinterval(...)\n        setcheckinterval(n)\n        \n        Tell the Python interpreter to check for asynchronous events every\n        n instructions.  This also affects how often thread switches occur.\n    \n    setdlopenflags(...)\n        setdlopenflags(n) -\u003e None\n        \n        Set the flags used by the interpreter for dlopen calls, such as when the\n        interpreter loads extension modules.  Among other things, this will enable\n        a lazy resolving of symbols when importing a module, if called as\n        sys.setdlopenflags(0).  To share symbols across extension modules, call as\n        sys.setdlopenflags(os.RTLD_GLOBAL).  Symbolic names for the flag modules\n        can be found in the os module (RTLD_xxx constants, e.g. os.RTLD_LAZY).\n    \n    setprofile(...)\n        setprofile(function)\n        \n        Set the profiling function.  It will be called on each function call\n        and return.  See the profiler chapter in the library manual.\n    \n    setrecursionlimit(...)\n        setrecursionlimit(n)\n        \n        Set the maximum depth of the Python interpreter stack to n.  This\n        limit prevents infinite recursion from causing an overflow of the C\n        stack and crashing Python.  The highest possible limit is platform-\n        dependent.\n    \n    setswitchinterval(...)\n        setswitchinterval(n)\n        \n        Set the ideal thread switching delay inside the Python interpreter\n        The actual frequency of switching threads can be lower if the\n        interpreter executes long sequences of uninterruptible code\n        (this is implementation-specific and workload-dependent).\n        \n        The parameter must represent the desired switching delay in seconds\n        A typical value is 0.005 (5 milliseconds).\n    \n    settrace(...)\n        settrace(function)\n        \n        Set the global debug tracing function.  It will be called on each\n        function call.  See the debugger chapter in the library manual.\n\nDATA\n    __stderr__ \u003d \u003c_io.TextIOWrapper name\u003d\u0027\u003cstderr\u003e\u0027 mode\u003d\u0027w\u0027 encoding\u003d\u0027UTF...\n    __stdin__ \u003d \u003c_io.TextIOWrapper name\u003d\u0027\u003cstdin\u003e\u0027 mode\u003d\u0027r\u0027 encoding\u003d\u0027UTF-8...\n    __stdout__ \u003d \u003c_io.TextIOWrapper name\u003d\u0027\u003cstdout\u003e\u0027 mode\u003d\u0027w\u0027 encoding\u003d\u0027UTF...\n    abiflags \u003d \u0027m\u0027\n    api_version \u003d 1013\n    argv \u003d [\u0027/opt/conda/envs/python_3_with_R/lib/python3.7/site-packages/i...\n    base_exec_prefix \u003d \u0027/opt/conda/envs/python_3_with_R\u0027\n    base_prefix \u003d \u0027/opt/conda/envs/python_3_with_R\u0027\n    builtin_module_names \u003d (\u0027_abc\u0027, \u0027_ast\u0027, \u0027_codecs\u0027, \u0027_collections\u0027, \u0027_f...\n    byteorder \u003d \u0027little\u0027\n    copyright \u003d \u0027Copyright (c) 2001-2021 Python Software Foundati...ematis...\n    displayhook \u003d \u003cipykernel.displayhook.ZMQShellDisplayHook object\u003e\n    dont_write_bytecode \u003d False\n    exec_prefix \u003d \u0027/opt/conda/envs/python_3_with_R\u0027\n    executable \u003d \u0027/opt/conda/envs/python_3_with_R/bin/python\u0027\n    flags \u003d sys.flags(debug\u003d0, inspect\u003d0, interactive\u003d0, opt...ation\u003d1, is...\n    float_info \u003d sys.float_info(max\u003d1.7976931348623157e+308, max_...epsilo...\n    float_repr_style \u003d \u0027short\u0027\n    hash_info \u003d sys.hash_info(width\u003d64, modulus\u003d2305843009213693...iphash2...\n    hexversion \u003d 50793200\n    implementation \u003d namespace(_multiarch\u003d\u0027x86_64-linux-gnu\u0027, cache_t...no...\n    int_info \u003d sys.int_info(bits_per_digit\u003d30, sizeof_digit\u003d4)\n    maxsize \u003d 9223372036854775807\n    maxunicode \u003d 1114111\n    meta_path \u003d [\u003cclass \u0027_frozen_importlib.BuiltinImporter\u0027\u003e, \u003cclass \u0027_fro...\n    modules \u003d {\u0027IPython\u0027: \u003cmodule \u0027IPython\u0027 from \u0027/opt/conda/envs/python_3...\n    path \u003d [\u0027/opt/zeppelin\u0027, \u0027/tmp/zeppelin_jupyter_kernel_python837936208...\n    path_hooks \u003d [\u003cclass \u0027zipimport.zipimporter\u0027\u003e, \u003cfunction FileFinder.pa...\n    path_importer_cache \u003d {\u0027/opt/conda/envs/python_3_with_R/lib/python3.7\u0027...\n    platform \u003d \u0027linux\u0027\n    prefix \u003d \u0027/opt/conda/envs/python_3_with_R\u0027\n    ps1 \u003d \u0027In : \u0027\n    ps2 \u003d \u0027...: \u0027\n    ps3 \u003d \u0027Out: \u0027\n    stderr \u003d \u003cipykernel.iostream.OutStream object\u003e\n    stdin \u003d \u003c_io.TextIOWrapper name\u003d\u0027\u003cstdin\u003e\u0027 mode\u003d\u0027r\u0027 encoding\u003d\u0027UTF-8\u0027\u003e\n    stdout \u003d \u003cipykernel.iostream.OutStream object\u003e\n    thread_info \u003d sys.thread_info(name\u003d\u0027pthread\u0027, lock\u003d\u0027semaphore\u0027, versio...\n    version \u003d \u00273.7.10 | packaged by conda-forge | (default, Feb 19 2021, 1...\n    version_info \u003d sys.version_info(major\u003d3, minor\u003d7, micro\u003d10, releaselev...\n    warnoptions \u003d []\n\nFILE\n    (built-in)\n\n\n"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128403_-2022546282",
      "id": "20180118-112905_1540839273",
      "dateCreated": "2020-02-05 14:12:08.403",
      "dateStarted": "2021-07-26 03:15:39.034",
      "dateFinished": "2021-07-26 03:15:39.143",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%md\n\n# IPython magic function\n\nAll the IPython magic functions are avalible in Zeppelin, here\u0027s one example of `%timeit`, for the complete IPython magic functions, you can check the [link](http://ipython.readthedocs.io/en/stable/interactive/magics.html) here.\n\n",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:39.234",
      "progress": 0,
      "config": {
        "tableHide": false,
        "editorSetting": {
          "language": "markdown",
          "editOnDblClick": true,
          "completionKey": "TAB"
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/markdown",
        "fontSize": 9.0,
        "editorHide": true,
        "results": {},
        "enabled": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "HTML",
            "data": "\u003cdiv class\u003d\"markdown-body\"\u003e\n\u003ch1\u003eIPython magic function\u003c/h1\u003e\n\u003cp\u003eAll the IPython magic functions are avalible in Zeppelin, here\u0026rsquo;s one example of \u003ccode\u003e%timeit\u003c/code\u003e, for the complete IPython magic functions, you can check the \u003ca href\u003d\"http://ipython.readthedocs.io/en/stable/interactive/magics.html\"\u003elink\u003c/a\u003e here.\u003c/p\u003e\n\n\u003c/div\u003e"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128404_-1445116404",
      "id": "20180118-112924_1945597351",
      "dateCreated": "2020-02-05 14:12:08.404",
      "dateStarted": "2021-07-26 03:15:39.237",
      "dateFinished": "2021-07-26 03:15:39.246",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%python.ipython\n\n%timeit range(1000)",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:39.337",
      "progress": 0,
      "config": {
        "editorSetting": {
          "language": "python",
          "editOnDblClick": false,
          "completionKey": "TAB",
          "completionSupport": true
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/python",
        "fontSize": 9.0,
        "results": {},
        "enabled": true,
        "title": false
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "TEXT",
            "data": "159 ns ± 2.41 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)\n"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128405_-1093651105",
      "id": "20180118-113325_2018867273",
      "dateCreated": "2020-02-05 14:12:08.405",
      "dateStarted": "2021-07-26 03:15:39.339",
      "dateFinished": "2021-07-26 03:15:52.279",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%md\n\n# Tab completion\n\nTab completion, especially for attributes, is a convenient way to explore the structure of any object you’re dealing with. Simply type `object_name.\u003cTAB\u003e` to view the object’s attributes. See the following screenshot of how tab completion works in IPython Interpreter.\n![alt text](https://user-images.githubusercontent.com/164491/34858941-3f28105a-f78e-11e7-8341-2fbfd306ba5b.gif \"Logo Title Text 1\")\n\n\n\n",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:52.347",
      "progress": 0,
      "config": {
        "tableHide": false,
        "editorSetting": {
          "language": "text",
          "editOnDblClick": false,
          "completionKey": "TAB"
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/text",
        "fontSize": 9.0,
        "editorHide": true,
        "results": {},
        "enabled": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "HTML",
            "data": "\u003cdiv class\u003d\"markdown-body\"\u003e\n\u003ch1\u003eTab completion\u003c/h1\u003e\n\u003cp\u003eTab completion, especially for attributes, is a convenient way to explore the structure of any object you’re dealing with. Simply type \u003ccode\u003eobject_name.\u0026lt;TAB\u0026gt;\u003c/code\u003e to view the object’s attributes. See the following screenshot of how tab completion works in IPython Interpreter.\u003cbr /\u003e\n\u003cimg src\u003d\"https://user-images.githubusercontent.com/164491/34858941-3f28105a-f78e-11e7-8341-2fbfd306ba5b.gif\" alt\u003d\"alt text\" title\u003d\"Logo Title Text 1\" /\u003e\u003c/p\u003e\n\n\u003c/div\u003e"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128405_-1429375020",
      "id": "20180118-113333_768199475",
      "dateCreated": "2020-02-05 14:12:08.405",
      "dateStarted": "2021-07-26 03:15:52.350",
      "dateFinished": "2021-07-26 03:15:52.364",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%md\n\n\n# Visualization\n\nOne big advangae of notebook is that you can inline visualize with your code in notebook. There\u0027re many awesome visualization libraries in Python, you can use most of them in Zeppelin.\nRefer this `IPython Visualization Tutorial` in Zeppelin for how to use Python visualization libraries in Apache Zeppelin.\n\n\n",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:52.450",
      "progress": 0,
      "config": {
        "tableHide": false,
        "editorSetting": {
          "language": "text",
          "editOnDblClick": false,
          "completionKey": "TAB"
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/text",
        "fontSize": 9.0,
        "editorHide": true,
        "results": {},
        "enabled": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "HTML",
            "data": "\u003cdiv class\u003d\"markdown-body\"\u003e\n\u003ch1\u003eVisualization\u003c/h1\u003e\n\u003cp\u003eOne big advangae of notebook is that you can inline visualize with your code in notebook. There\u0026rsquo;re many awesome visualization libraries in Python, you can use most of them in Zeppelin.\u003cbr /\u003e\nRefer this \u003ccode\u003eIPython Visualization Tutorial\u003c/code\u003e in Zeppelin for how to use Python visualization libraries in Apache Zeppelin.\u003c/p\u003e\n\n\u003c/div\u003e"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128405_-1181474830",
      "id": "20180118-114439_1191932175",
      "dateCreated": "2020-02-05 14:12:08.405",
      "dateStarted": "2021-07-26 03:15:52.453",
      "dateFinished": "2021-07-26 03:15:52.458",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%md\n\n# Use ZeppelinContext \n\n`ZeppelinContext` is a utlity class which provide the following features\n\n* Dynamic forms\n* Show DataFrame via builtin visualization\n\n",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:52.554",
      "progress": 0,
      "config": {
        "tableHide": false,
        "editorSetting": {
          "language": "markdown",
          "editOnDblClick": true,
          "completionKey": "TAB"
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/markdown",
        "fontSize": 9.0,
        "editorHide": true,
        "results": {},
        "enabled": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "HTML",
            "data": "\u003cdiv class\u003d\"markdown-body\"\u003e\n\u003ch1\u003eUse ZeppelinContext\u003c/h1\u003e\n\u003cp\u003e\u003ccode\u003eZeppelinContext\u003c/code\u003e is a utlity class which provide the following features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDynamic forms\u003c/li\u003e\n\u003cli\u003eShow DataFrame via builtin visualization\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/div\u003e"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128405_440264383",
      "id": "20180118-114841_1750411156",
      "dateCreated": "2020-02-05 14:12:08.405",
      "dateStarted": "2021-07-26 03:15:52.557",
      "dateFinished": "2021-07-26 03:15:52.562",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%python.ipython\n\nz.input(name\u003d\u0027my_name\u0027, defaultValue\u003d\u0027hello\u0027)",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:52.657",
      "progress": 0,
      "config": {
        "editorSetting": {
          "language": "python",
          "editOnDblClick": false,
          "completionKey": "TAB",
          "completionSupport": true
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/python",
        "fontSize": 9.0,
        "results": {},
        "enabled": true
      },
      "settings": {
        "params": {
          "my_name": "hello"
        },
        "forms": {
          "my_name": {
            "type": "TextBox",
            "name": "my_name",
            "displayName": "my_name",
            "defaultValue": "hello",
            "hidden": false
          }
        }
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "TEXT",
            "data": "\u0027hello\u0027"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128405_746444677",
      "id": "20180118-115612_471385279",
      "dateCreated": "2020-02-05 14:12:08.405",
      "dateStarted": "2021-07-26 03:15:52.660",
      "dateFinished": "2021-07-26 03:15:52.719",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%python.ipython\n\nimport pandas as pd\ndf \u003d pd.DataFrame({\u0027name\u0027:[\u0027a\u0027,\u0027b\u0027,\u0027c\u0027], \u0027count\u0027:[12,24,18]})\nz.show(df)",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:52.760",
      "progress": 0,
      "config": {
        "editorSetting": {
          "language": "python",
          "editOnDblClick": false,
          "completionKey": "TAB",
          "completionSupport": true
        },
        "colWidth": 12.0,
        "editorMode": "ace/mode/python",
        "fontSize": 9.0,
        "results": {
          "0": {
            "graph": {
              "mode": "table",
              "height": 300.0,
              "optionOpen": false,
              "setting": {
                "table": {
                  "tableGridState": {
                    "columns": [
                      {
                        "name": "count",
                        "visible": true,
                        "width": "*",
                        "sort": {},
                        "filters": [
                          {}
                        ],
                        "pinned": ""
                      },
                      {
                        "name": "name",
                        "visible": true,
                        "width": "*",
                        "sort": {
                          "priority": 0.0,
                          "direction": "desc"
                        },
                        "filters": [
                          {}
                        ],
                        "pinned": ""
                      }
                    ],
                    "scrollFocus": {},
                    "selection": [],
                    "grouping": {
                      "grouping": [],
                      "aggregations": [],
                      "rowExpandedStates": {}
                    },
                    "treeView": {},
                    "pagination": {
                      "paginationCurrentPage": 1.0,
                      "paginationPageSize": 250.0
                    }
                  },
                  "tableColumnTypeState": {
                    "updated": false,
                    "names": {
                      "count": "string",
                      "name": "string"
                    }
                  },
                  "updated": false,
                  "initialized": false,
                  "tableOptionSpecHash": "[{\"name\":\"useFilter\",\"valueType\":\"boolean\",\"defaultValue\":false,\"widget\":\"checkbox\",\"description\":\"Enable filter for columns\"},{\"name\":\"showPagination\",\"valueType\":\"boolean\",\"defaultValue\":false,\"widget\":\"checkbox\",\"description\":\"Enable pagination for better navigation\"},{\"name\":\"showAggregationFooter\",\"valueType\":\"boolean\",\"defaultValue\":false,\"widget\":\"checkbox\",\"description\":\"Enable a footer for displaying aggregated values\"}]",
                  "tableOptionValue": {
                    "useFilter": false,
                    "showPagination": false,
                    "showAggregationFooter": false
                  }
                },
                "scatterChart": {
                  "xAxis": {
                    "name": "name",
                    "index": 1.0,
                    "aggr": "sum"
                  },
                  "yAxis": {
                    "name": "count",
                    "index": 0.0,
                    "aggr": "sum"
                  }
                },
                "multiBarChart": {}
              },
              "commonSetting": {},
              "keys": [],
              "groups": [],
              "values": [
                {
                  "name": "name",
                  "index": 1.0,
                  "aggr": "sum"
                }
              ]
            },
            "helium": {}
          }
        },
        "enabled": true
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": [
          {
            "type": "TABLE",
            "data": "name\tcount\na\t12\nb\t24\nc\t18\n"
          }
        ]
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128406_-1787806183",
      "id": "20180118-122136_1299905608",
      "dateCreated": "2020-02-05 14:12:08.406",
      "dateStarted": "2021-07-26 03:15:52.763",
      "dateFinished": "2021-07-26 03:15:53.423",
      "status": "FINISHED"
    },
    {
      "title": "",
      "text": "%python.ipython\n",
      "user": "anonymous",
      "dateUpdated": "2021-07-26 03:15:53.463",
      "progress": 0,
      "config": {
        "colWidth": 12.0,
        "fontSize": 9.0,
        "enabled": true,
        "results": {},
        "editorSetting": {
          "language": "python",
          "editOnDblClick": false,
          "completionKey": "TAB",
          "completionSupport": true
        },
        "editorMode": "ace/mode/python"
      },
      "settings": {
        "params": {},
        "forms": {}
      },
      "results": {
        "code": "SUCCESS",
        "msg": []
      },
      "apps": [],
      "runtimeInfos": {},
      "progressUpdateIntervalMs": 500,
      "jobName": "paragraph_1580883128406_130649699",
      "id": "20180118-122149_878709973",
      "dateCreated": "2020-02-05 14:12:08.406",
      "dateStarted": "2021-07-26 03:15:53.465",
      "dateFinished": "2021-07-26 03:15:53.521",
      "status": "FINISHED"
    }
  ],
  "name": "1. IPython Basic",
  "id": "2EYDJKFFY",
  "defaultInterpreterGroup": "spark",
  "version": "0.9.0-SNAPSHOT",
  "noteParams": {},
  "noteForms": {},
  "angularObjects": {},
  "config": {
    "isZeppelinNotebookCronEnable": false
  },
  "info": {}
}