{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import sys\n", "sys.path.append(\"..\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from optimus import Optimus\n", "\n", "from pyspark.sql.session import SparkSession\n", "from pyspark.sql.types import StructType, StructField, StringType, BooleanType, IntegerType, ArrayType" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Create optimus\n", "op = Optimus()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+-------------------+---+-------+-----+------+------+\n", "| words|num|animals|thing|second|filter|\n", "+-------------------+---+-------+-----+------+------+\n", "| I like fish | 1|dog dog|housé| 5| a|\n", "| zombies| 2| cat| tv| 6| b|\n", "|simpsons cat lady| 2| frog|table| 7| 1|\n", "| null| 3| eagle|glass| 8| c|\n", "+-------------------+---+-------+-----+------+------+\n", "\n" ] } ], "source": [ "df = op.create.df([\n", " (\"words\", \"str\", True),\n", " (\"num\", \"int\", True),\n", " (\"animals\", \"str\", True),\n", " (\"thing\", StringType(), True),\n", " (\"second\", \"int\", True),\n", " (\"filter\", StringType(), True)\n", " ],\n", " [\n", " (\" I like fish \", 1, \"dog dog\", \"housé\", 5 , \"a\"),\n", " (\" zombies\", 2, \"cat\", \"tv\", 6, \"b\"),\n", " (\"simpsons cat lady\", 2, \"frog\", \"table\", 7, \"1\"),\n", " (None, 3, \"eagle\", \"glass\", 8, \"c\")\n", " \n", " ])\n", "\n", "df.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('words', 'string'),\n", " ('num', 'int'),\n", " ('animals', 'string'),\n", " ('thing', 'string'),\n", " ('second', 'int'),\n", " ('filter', 'string')]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.dtypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Append row\n", "### Spark\n", "Not available in Spark. You need to create a dataframe and the union to append a row" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " ⸱⸱I⸱like⸱⸱⸱⸱⸱fish⸱⸱\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "\n", " dog⸱dog\n", " | \n", " \n", "\n", " housé\n", " | \n", " \n", "\n", " 5\n", " | \n", " \n", "\n", " a\n", " | \n", " \n", "
| \n", " ⸱⸱⸱⸱zombies\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " cat\n", " | \n", " \n", "\n", " tv\n", " | \n", " \n", "\n", " 6\n", " | \n", " \n", "\n", " b\n", " | \n", " \n", "
| \n", " simpsons⸱⸱⸱cat⸱lady\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " frog\n", " | \n", " \n", "\n", " table\n", " | \n", " \n", "\n", " 7\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "
| \n", " None\n", " | \n", " \n", "\n", " 3\n", " | \n", " \n", "\n", " eagle\n", " | \n", " \n", "\n", " glass\n", " | \n", " \n", "\n", " 8\n", " | \n", " \n", "\n", " c\n", " | \n", " \n", "
| \n", " this⸱is⸱a⸱word\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " this⸱is⸱an⸱animal\n", " | \n", " \n", "\n", " this⸱is⸱a⸱thing\n", " | \n", " \n", "\n", " 64\n", " | \n", " \n", "\n", " this⸱is⸱a⸱filter\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " simpsons⸱⸱⸱cat⸱lady\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " frog\n", " | \n", " \n", "\n", " table\n", " | \n", " \n", "\n", " 7\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "
| \n", " None\n", " | \n", " \n", "\n", " 3\n", " | \n", " \n", "\n", " eagle\n", " | \n", " \n", "\n", " glass\n", " | \n", " \n", "\n", " 8\n", " | \n", " \n", "\n", " c\n", " | \n", " \n", "
| \n", " ⸱⸱I⸱like⸱⸱⸱⸱⸱fish⸱⸱\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "\n", " dog⸱dog\n", " | \n", " \n", "\n", " housé\n", " | \n", " \n", "\n", " 5\n", " | \n", " \n", "\n", " a\n", " | \n", " \n", "
| \n", " ⸱⸱⸱⸱zombies\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " cat\n", " | \n", " \n", "\n", " tv\n", " | \n", " \n", "\n", " 6\n", " | \n", " \n", "\n", " b\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " simpsons⸱⸱⸱cat⸱lady\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " frog\n", " | \n", " \n", "\n", " table\n", " | \n", " \n", "\n", " 7\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "
| \n", " None\n", " | \n", " \n", "\n", " 3\n", " | \n", " \n", "\n", " eagle\n", " | \n", " \n", "\n", " glass\n", " | \n", " \n", "\n", " 8\n", " | \n", " \n", "\n", " c\n", " | \n", " \n", "
| \n", " ⸱⸱I⸱like⸱⸱⸱⸱⸱fish⸱⸱\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "\n", " dog⸱dog\n", " | \n", " \n", "\n", " housé\n", " | \n", " \n", "\n", " 5\n", " | \n", " \n", "\n", " a\n", " | \n", " \n", "
| \n", " ⸱⸱⸱⸱zombies\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " cat\n", " | \n", " \n", "\n", " tv\n", " | \n", " \n", "\n", " 6\n", " | \n", " \n", "\n", " b\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " simpsons⸱⸱⸱cat⸱lady\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " frog\n", " | \n", " \n", "\n", " table\n", " | \n", " \n", "\n", " 7\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "
| \n", " None\n", " | \n", " \n", "\n", " 3\n", " | \n", " \n", "\n", " eagle\n", " | \n", " \n", "\n", " glass\n", " | \n", " \n", "\n", " 8\n", " | \n", " \n", "\n", " c\n", " | \n", " \n", "
| \n", " ⸱⸱I⸱like⸱⸱⸱⸱⸱fish⸱⸱\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "\n", " dog⸱dog\n", " | \n", " \n", "\n", " housé\n", " | \n", " \n", "\n", " 5\n", " | \n", " \n", "\n", " a\n", " | \n", " \n", "
| \n", " ⸱⸱⸱⸱zombies\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " cat\n", " | \n", " \n", "\n", " tv\n", " | \n", " \n", "\n", " 6\n", " | \n", " \n", "\n", " b\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " ⸱⸱I⸱like⸱⸱⸱⸱⸱fish⸱⸱\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "\n", " dog⸱dog\n", " | \n", " \n", "\n", " housé\n", " | \n", " \n", "\n", " 5\n", " | \n", " \n", "\n", " a\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " simpsons⸱⸱⸱cat⸱lady\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " frog\n", " | \n", " \n", "\n", " table\n", " | \n", " \n", "\n", " 7\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " None\n", " | \n", " \n", "\n", " 3\n", " | \n", " \n", "\n", " eagle\n", " | \n", " \n", "\n", " glass\n", " | \n", " \n", "\n", " 8\n", " | \n", " \n", "\n", " c\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " ⸱⸱I⸱like⸱⸱⸱⸱⸱fish⸱⸱\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "\n", " dog⸱dog\n", " | \n", " \n", "\n", " housé\n", " | \n", " \n", "\n", " 5\n", " | \n", " \n", "\n", " a\n", " | \n", " \n", "
| \n", " ⸱⸱⸱⸱zombies\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " cat\n", " | \n", " \n", "\n", " tv\n", " | \n", " \n", "\n", " 6\n", " | \n", " \n", "\n", " b\n", " | \n", " \n", "
| \n", " None\n", " | \n", " \n", "\n", " 3\n", " | \n", " \n", "\n", " eagle\n", " | \n", " \n", "\n", " glass\n", " | \n", " \n", "\n", " 8\n", " | \n", " \n", "\n", " c\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " ⸱⸱I⸱like⸱⸱⸱⸱⸱fish⸱⸱\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "\n", " dog⸱dog\n", " | \n", " \n", "\n", " housé\n", " | \n", " \n", "\n", " 5\n", " | \n", " \n", "\n", " a\n", " | \n", " \n", "
| \n", " ⸱⸱⸱⸱zombies\n", " | \n", " \n", "\n", " 2\n", " | \n", " \n", "\n", " cat\n", " | \n", " \n", "\n", " tv\n", " | \n", " \n", "\n", " 6\n", " | \n", " \n", "\n", " b\n", " | \n", " \n", "
| \n", " None\n", " | \n", " \n", "\n", " 3\n", " | \n", " \n", "\n", " eagle\n", " | \n", " \n", "\n", " glass\n", " | \n", " \n", "\n", " 8\n", " | \n", " \n", "\n", " c\n", " | \n", " \n", "
| \n",
" words \n",
" 1 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" num \n",
" 2 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" animals \n",
" 3 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" thing \n",
" 4 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" second \n",
" 5 (int) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
" \n",
" filter \n",
" 6 (string) \n",
" \n",
" \n",
" nullable\n",
" \n",
" \n",
" | \n",
" \n",
"
|---|---|---|---|---|---|
| \n", " ⸱⸱I⸱like⸱⸱⸱⸱⸱fish⸱⸱\n", " | \n", " \n", "\n", " 1\n", " | \n", " \n", "\n", " dog⸱dog\n", " | \n", " \n", "\n", " housé\n", " | \n", " \n", "\n", " 5\n", " | \n", " \n", "\n", " a\n", " | \n", " \n", "