<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Suttipong Kullawattana</title>
    <description>The latest articles on DEV Community by Suttipong Kullawattana (@kullawattana).</description>
    <link>https://dev.to/kullawattana</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F944741%2Fe42ed9be-44fd-40a9-8bd2-efe2c581a9fb.jpeg</url>
      <title>DEV Community: Suttipong Kullawattana</title>
      <link>https://dev.to/kullawattana</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kullawattana"/>
    <language>en</language>
    <item>
      <title>How to setup pyspark with Jupyter Notebook for Data Engineer</title>
      <dc:creator>Suttipong Kullawattana</dc:creator>
      <pubDate>Sat, 15 Oct 2022 13:55:36 +0000</pubDate>
      <link>https://dev.to/kullawattana/how-to-setup-pyspark-with-jupyter-notebook-for-data-engineer-5c1e</link>
      <guid>https://dev.to/kullawattana/how-to-setup-pyspark-with-jupyter-notebook-for-data-engineer-5c1e</guid>
      <description>&lt;p&gt;I have to conclusion how to setup pyspark for building ETL pipeline with Jupyter Notebook by summary step like this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First step&lt;/strong&gt;, Install &lt;a href="https://www.python.org/downloads/release/python-391/"&gt;python 3.9.1&lt;/a&gt; for use on python.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second step&lt;/strong&gt;, install scala &lt;code&gt;$ brew install scala&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f2TbbjQg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/th6xh3syabcwnvx4q3tg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f2TbbjQg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/th6xh3syabcwnvx4q3tg.png" alt="Image description" width="880" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third step&lt;/strong&gt;, start with &lt;code&gt;$ pyspark&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EL2Wmz7d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dg9pzj1et9u60rkejll9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EL2Wmz7d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dg9pzj1et9u60rkejll9.png" alt="Image description" width="880" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fourth step&lt;/strong&gt;, run data frame&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nu_V6oQU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uh15x9n5f6uhzi8jkued.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nu_V6oQU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uh15x9n5f6uhzi8jkued.png" alt="Image description" width="880" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reference: &lt;a href="https://www.bmc.com/blogs/jupyter-notebooks-apache-spark/"&gt;apache-spark&lt;/a&gt;, &lt;a href="https://www.mongodb.com/blog/post/getting-started-with-mongodb-pyspark-and-jupyter-notebook"&gt;Getting started with mongodb, pyspark and jupyter-notebook&lt;/a&gt;, &lt;a href="https://sparkbyexamples.com/pyspark/how-to-install-pyspark-on-mac/"&gt;How to install pyspark on mac&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>python</category>
      <category>datascience</category>
    </item>
    <item>
      <title>How to setup MongoDB with Jupyter Notebook</title>
      <dc:creator>Suttipong Kullawattana</dc:creator>
      <pubDate>Sat, 15 Oct 2022 13:11:29 +0000</pubDate>
      <link>https://dev.to/kullawattana/how-to-setup-mongodb-with-jupyter-notebook-mnh</link>
      <guid>https://dev.to/kullawattana/how-to-setup-mongodb-with-jupyter-notebook-mnh</guid>
      <description>&lt;p&gt;I have to conclusion how to setup MongoDB (NoSQL) with Jupyter Notebook by summary step like this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First step&lt;/strong&gt;, Install &lt;a href="https://www.python.org/downloads/release/python-391/"&gt;python 3.9.1&lt;/a&gt; for use on python, install &lt;code&gt;$ pip install pymongo&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second step&lt;/strong&gt;, Install &lt;a href="https://brew.sh/"&gt;homebrew&lt;/a&gt; with &lt;code&gt;$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third step&lt;/strong&gt;, Install &lt;a href="https://jupyter.org/install"&gt;Jupyter Notebook&lt;/a&gt; on Windows, MacOS or Linux and try to install &lt;code&gt;$ pip install notebook&lt;/code&gt; in terminal and run &lt;code&gt;$ jupyter notebook&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fourth step&lt;/strong&gt;, Install MongoDB Community Edition on macOS &lt;a href="https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/"&gt;mongoDB&lt;/a&gt; and &lt;a href="https://www.mongodb.com/try/download/compass"&gt;MongoDB Compass&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;install&lt;/strong&gt; &lt;code&gt;$ brew tap mongodb/brew&lt;/code&gt; and &lt;code&gt;$ brew install mongodb-community&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BS0FrrVW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dm9xck3uas4coz8ob0uu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BS0FrrVW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dm9xck3uas4coz8ob0uu.png" alt="Image description" width="880" height="950"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install MongoDB on Ubuntu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo apt update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo apt install wget curl gnupg2 software-properties-common apt-transport-https ca-certificates lsb-release&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-6.gpg&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo dpkg -i ./libssl1.1_1.1.1f-1ubuntu2.16_amd64.deb&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo apt update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo apt install mongodb-org&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo systemctl enable --now mongod&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Checking config of mongod.conf on development mode&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo vi /etc/mongod.conf&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#add this line
    security:
          authorization: enabled
# network interfaces
    net:
      port: 27017
      bindIp: 0.0.0.0  # Change to global
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart service again with &lt;code&gt;$ sudo service mongod restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create the “db” directory&lt;/strong&gt; where MongoDB stores its database by &lt;code&gt;$ mkdir -p /data/db&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make sure that the directory has the previlage to read and write from the directory by using chown&lt;/strong&gt; (change owner) with &lt;code&gt;$ chown -R 'id -un'/data/db&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start MongoDB command :&lt;/strong&gt; &lt;code&gt;$ brew services start mongodb-community&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using&lt;/strong&gt; &lt;code&gt;$ ps aux | grep -v grep |grep mongod&lt;/code&gt;, allow us to verify that MongoDB is running. You should see the current ststus of your mongod process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;On Ubuntu, You can followup setup directory like this.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;$ sudo systemctl stop mongod.service&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo mkdir -p /newdata/mongo&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo chown -R mongodb:mongodb  /newdata/mongo&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo rsync -av /var/lib/mongodb  /newdata/mongo&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo mv /var/lib/mongodb /var/lib/mongodb.bak&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo ln -s /newdata/mongo /var/lib/mongodb&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo systemctl daemon-reload&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo systemctl start mongod&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Five step&lt;/strong&gt;, Install &lt;strong&gt;mongosh&lt;/strong&gt; for start &lt;a href="https://www.mongodb.com/docs/mongodb-shell/connect/#std-label-mdb-shell-connect"&gt;mongosh&lt;/a&gt;, &lt;a href="https://www.mongodb.com/docs/mongodb-shell/#mongodb-binary-bin.mongosh"&gt;MongoDB Shell&lt;/a&gt; and create role user on database&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ mongosh
    test&amp;gt; use admin
    test&amp;gt; db.createUser({user: "myUserAdmin", pwd: "abc123",  roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]})
    test&amp;gt; exit
$ mongosh -u mongdbuser -p --authenticationDatabase admin
Enter password: ********
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1y6rRPiA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xiy4b8wyqzj1zbg5m1x6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1y6rRPiA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xiy4b8wyqzj1zbg5m1x6.png" alt="Image description" width="880" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;write the code below&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pymongo&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pymongo&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MongoClient&lt;/span&gt;

&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'myUserAdmin'&lt;/span&gt;
&lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;'abc123'&lt;/span&gt;
&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MongoClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'mongodb://%s:%s@127.0.0.1'&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'mongotestdb'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;my_collection&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"patient_data"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;patient_record&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="s"&gt;"Name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Maureen Skinner"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s"&gt;"Age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;87&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s"&gt;"Sex"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"F"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="s"&gt;"Blood pressure"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s"&gt;"sys"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;156&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"dia"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;82&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
   &lt;span class="s"&gt;"Heart rate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;82&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;my_collection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;insert_one&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;patient_record&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;my_collection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result on MongoDB Compass&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BZUII2CN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bll58vadkgtr3bil1q1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BZUII2CN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bll58vadkgtr3bil1q1n.png" alt="Image description" width="880" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stop MongoDB command :&lt;/strong&gt; &lt;code&gt;$ brew services stop mongodb-community&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://www.geeksforgeeks.org/mongodb-tutorial/"&gt;MongoDB tutorial&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=ofme2o29ngU"&gt;mongosh&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=hJ1RuXvHOe0"&gt;Building Data Pipeline | Spotify - Jupyter Notebook - MongoDB&lt;/a&gt;, &lt;a href="https://medium.com/@pragya_paudyal/connecting-mongodb-to-jupyter-notebook-e3f636a85830"&gt;Connecting MongoDB to Jupyter Notebook&lt;/a&gt;, &lt;a href="https://towardsdatascience.com/8-examples-to-query-a-nosql-database-fc3dd1c9a8c"&gt;Example Query NoSQL&lt;/a&gt;, &lt;a href="https://medium.com/@haxzie/getting-started-with-mongodb-setting-up-admin-and-user-accounts-4fdd33687741"&gt;Setting user account&lt;/a&gt;, &lt;a href="https://towardsdatascience.com/using-mongo-databases-in-python-e93bc3b6ff5f"&gt;Using MongoDB in python&lt;/a&gt;, &lt;a href="https://linuxhint.com/install-jupyter-notebook-on-ubuntu-20-04/"&gt;Install Jupyter Notebook on Ubuntu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>database</category>
      <category>mongodb</category>
    </item>
    <item>
      <title>How to setup PostgreSQL with Jupyter Notebook</title>
      <dc:creator>Suttipong Kullawattana</dc:creator>
      <pubDate>Sat, 15 Oct 2022 12:27:51 +0000</pubDate>
      <link>https://dev.to/kullawattana/how-to-setup-postgresql-with-jupyter-notebook-1h21</link>
      <guid>https://dev.to/kullawattana/how-to-setup-postgresql-with-jupyter-notebook-1h21</guid>
      <description>&lt;p&gt;I have to conclusion how to setup PostgreSQL (RDBMS) on development environment with Jupyter Notebook by summary step like this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First step&lt;/strong&gt;, Install &lt;a href="https://www.python.org/downloads/release/python-391/" rel="noopener noreferrer"&gt;python 3.9.1&lt;/a&gt; for use on python or &lt;a href="https://www.educative.io/answers/how-to-uninstall-python" rel="noopener noreferrer"&gt;how to uninstall python&lt;/a&gt; if you have any issue on python configuration, You can follow from link.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second step&lt;/strong&gt;, Install &lt;a href="https://brew.sh/" rel="noopener noreferrer"&gt;homebrew&lt;/a&gt; with &lt;code&gt;$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third step&lt;/strong&gt;, Install &lt;a href="https://jupyter.org/install" rel="noopener noreferrer"&gt;Jupyter Notebook&lt;/a&gt; on Windows, MacOS or Linux and try to install &lt;code&gt;$ pip install notebook&lt;/code&gt; in terminal and run &lt;code&gt;$ jupyter notebook&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fourth step&lt;/strong&gt;, Install &lt;a href="https://pypi.org/project/psycopg2/" rel="noopener noreferrer"&gt;psycopg2&lt;/a&gt; and try to install &lt;code&gt;$ pip install psycopg2-binary&lt;/code&gt; on terminal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you have any install psycopg2 on Ubuntu, please follow step like this.&lt;/strong&gt; &lt;br&gt;
&lt;code&gt;$ sudo apt-get update&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ pip install psycopg2-binary&lt;/code&gt; and then install &lt;br&gt;
&lt;code&gt;$ sudo apt-get install libpq-dev python-dev&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo pip install psycopg2&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Five step&lt;/strong&gt;, Install &lt;a href="https://www.postgresql.org/download/" rel="noopener noreferrer"&gt;PostgreSQL&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install PostgreSQL on Ubuntu&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;$ sudo apt update&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo apt install postgresql postgresql-contrib&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ sudo systemctl start postgresql.service&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Checking config of pg_hba.conf and postgresql.conf on development mode&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo nano /etc/postgresql/14/main/pg_hba.conf&lt;/code&gt;&lt;br&gt;
        host  all  all 0.0.0.0/0 md5&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo nano /etc/postgresql/14/main/postgresql.conf&lt;/code&gt;&lt;br&gt;
        listen_addresses = '*'          # what IP address(es) to listen on;&lt;/p&gt;

&lt;p&gt;Restart service again with &lt;code&gt;$ sudo service postgresql restart&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Six step&lt;/strong&gt;, Create role user to super user by loggin on &lt;strong&gt;PgAdmin4&lt;/strong&gt; &lt;br&gt;
go to &lt;strong&gt;Object &amp;gt; Create &amp;gt; Login/Group Role&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgc6z227l4dj4vllqx78.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgc6z227l4dj4vllqx78.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create the &lt;strong&gt;"username"&lt;/strong&gt; that was named in the psql.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;How to create username, password for database on Ubuntu, you can followup like this.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo -u postgres psql&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ postgres=# create database mydb;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ postgres=# create user myuser with encrypted password 'mypass';&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ postgres=# grant all privileges on database mydb to myuser;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felk6myetlhxry1rcv3yr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felk6myetlhxry1rcv3yr.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create &lt;strong&gt;password&lt;/strong&gt; for user.&lt;/li&gt;
&lt;li&gt;Give it all the rights and save information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ae1rqppjt8djxcat7nd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ae1rqppjt8djxcat7nd.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Try the password immediately in the psql terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;How to run and testing PostgreSQL on terminal.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ export PGPASSWD=mypass&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ psql -h 127.0.0.1 -U myuser mydb&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ mydb=&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ mydb=&amp;gt; DROP TABLE IF EXISTS EMPLOYEE;
DROP TABLE
$ mydb=&amp;gt; CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Age INT,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255));
$ CREATE TABLE
$ mydb=&amp;gt; \dt
          List of relations
 Schema |    Name    | Type  | Owner
--------+------------+-------+--------
 public | cricketers | table | myuser
(1 rows)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Insert Data&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ mydb=&amp;gt; INSERT INTO CRICKETERS (First_Name, Last_Name, Age, Place_Of_Birth, Country) VALUES ('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
$ mydb=&amp;gt; INSERT INTO CRICKETERS (First_Name, Last_Name, Age, Place_Of_Birth, Country) VALUES ('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
$ mydb=&amp;gt; INSERT INTO CRICKETERS (First_Name, Last_Name, Age, Place_Of_Birth, Country) VALUES ('Virat', 'Kohli', 30, 'Delhi', 'India');
$ mydb=&amp;gt; INSERT INTO CRICKETERS (First_Name, Last_Name, Age, Place_Of_Birth, Country) VALUES ('Rohit', 'Sharma', 32, 'Nagpur', 'India');

$ mydb=&amp;gt; SELECT * FROM cricketers;
 first_name | last_name  | age | place_of_birth | country
------------+------------+-----+----------------+----------
 Shikhar    | Dhawan     |  33 | Delhi          | India
 Kumara     | Sangakkara |  41 | Matale         | Srilanka
 Virat      | Kohli      |  30 | Delhi          | India
 Rohit      | Sharma     |  32 | Nagpur         | India
(4 rows)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;How to exit PostgreSQL on Terminal of MacOS or Ubuntu Linux.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;$ sudo -i -u postgres psql&lt;/code&gt;&lt;br&gt;
&lt;code&gt;$ postgres=# \q  =&amp;gt; to exit&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;write the code below&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;psycopg2&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;psycopg2&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Error&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# Connect to an existing database
&lt;/span&gt;    &lt;span class="n"&gt;connection&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;psycopg2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;myuser&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                  &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;mypass&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                  &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;127.0.0.1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                  &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;5432&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                  &lt;span class="n"&gt;database&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;postgres&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Create a cursor to perform database operations
&lt;/span&gt;    &lt;span class="n"&gt;cursor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cursor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="c1"&gt;# Print PostgreSQL details
&lt;/span&gt;    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PostgreSQL server information&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_dsn_parameters&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# Executing a SQL query
&lt;/span&gt;    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SELECT version();&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# Fetch result
&lt;/span&gt;    &lt;span class="n"&gt;record&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetchone&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are connected to - &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;record&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;#Doping EMPLOYEE table if already exists.
&lt;/span&gt;    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DROP TABLE IF EXISTS CRICKETERS&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;#Creating table as per requirement
&lt;/span&gt;    &lt;span class="n"&gt;sql&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'''&lt;/span&gt;&lt;span class="s"&gt; 
    CREATE TABLE CRICKETERS (
    First_Name VARCHAR(255),
    Last_Name VARCHAR(255),
    Age INT,
    Place_Of_Birth VARCHAR(255),
    Country VARCHAR(255));
    &lt;/span&gt;&lt;span class="sh"&gt;'''&lt;/span&gt;
    &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sql&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Table created successfully........&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;commit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="c1"&gt;#Closing the connection
&lt;/span&gt;    &lt;span class="n"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nf"&gt;except &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Exception&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error while connecting to PostgreSQL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;finally&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
       &lt;span class="n"&gt;cursor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
       &lt;span class="n"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
       &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;PostgreSQL connection is closed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Result of field in &lt;strong&gt;PgAdmin4&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxr6r8tsokdheaqqz53aw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxr6r8tsokdheaqqz53aw.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reference : &lt;a href="https://www.postgresqltutorial.com/postgresql-python/connect/" rel="noopener noreferrer"&gt;Connect To PostgreSQL Database Server&lt;/a&gt;, &lt;a href="https://linuxhint.com/install-jupyter-notebook-on-ubuntu-20-04/" rel="noopener noreferrer"&gt;Install Jupyter Notebook on Ubuntu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>postgres</category>
      <category>tutorial</category>
      <category>python</category>
    </item>
  </channel>
</rss>
