Hubungkan Jupyter Notebook ke Google Spread Sheet dengan Linux Ubuntu
· 2 min read · Label LinuxData adalah titik awal untuk semua proyek dan produk dalam ilmu data. Baris pertama skrip didedikasikan untuk membaca data. Ini adalah fakta dan tidak berubah berdasarkan proyek. Yang berubah adalah sumber datanya. Ada berbagai tempat tempat kami menyimpan data seperti database, bucket S3, BigQuery, file eksternal, spreadsheet, dan lain sebagainya.
Google sheet cukup umum untuk menyimpan data berukuran kecil hingga sedang. Salah satu hal menyenangkan tentang Google Sheets adalah Anda dapat langsung menyambungkannya dari server Jupyter. Anda tidak perlu mengunduh data di direktori lokal, karena Anda dan membacanya dari sana. Keuntungan lainnya adalah dapat menghubungkan buku catatan Anda secara langsung sehingga Anda dapat memperbarui data saat itu juga.
Anggaplah Anda memiliki tugas manipulasi data yang harus dilakukan. Anda menulis skrip Anda yang terhubung ke lembar Google, membaca data, melakukan manipulasi, dan menulis file yang diperbarui kembali ke lembar yang sama. Anda dapat menjadwalkan skrip ini agar data dalam sheet selalu terbaru.
Pada artikel yang kami tulis di blogger ini, kami akan mempelajari cara menghubungkan dan mengakses Google sheet dari server Jupyter.
A. Buat Kunci API Google Sheets dan Google Drive
Sebagai langkah pertama yang harus Anda lakukan adalah membuat API Key untuk Google Sheets dan Google Drive di Google Cloud Console. API Key ini berguna untuk menghubungkan Google Sheets Anda dengan server Jupyter.
Pada artikel ini kami tidak akan menjelaskan secara detail cara membuat API Key dari awal, Anda dapat membaca artikel kami yang lain tentang cara membuat API Key. Kami hanya akan menjelaskan bagian-bagian pentingnya saja.
Baiklah, langsung saja kita mulai membuat API Key, pada menu Google Console ada klik di menu paling kiri atas, untuk lebih mudahnya lihat gambar di bawah ini.
Di tengah, klik tanda "+" ENABLE APIS AND SERVICES, seperti ditunjukkan pada ambar di bwah ini.
Kemudian Anda mengaktifkan kedua API, seperti yang ditunjukkan pada gambar berikut.
Langkah berikutnya yang harus Anda lakukan adalah membuat Kredensial, yaitu membuat kunci API untuk Google Sheet dan Google Drive.
Lanjutkan dengan membuat Akun Layanan untuk pengguna yang akan terhubung ke server Jupyter.
Sebenarnya masih banyak langkah-langkahnya, tetapi karena artikel ini hanya membatasi pembahasan tentang cara menghubungkan Google Sheets dengan server Jupyter, maka Anda dapat membaca di artikel lainnya.
Pada langkah pembuatan Service Account, kita mendapatkan user name "freebsdapiindex@api-indexing-blogger.iam.gserviceaccount.com". Nah, user name itulah yang akan kita gunakan untuk menghubungkan server Jupyter dengan Google Sheets.
B. Hubungkan Google Sheet dengan Jupyter Notebook
Kami anggap saja anda telah berhasil membuat naam user di bagian "Service account", langkah selanjutnya anda buka hasil kerja anda atau proyek kerja yang anda kerjakan degan Google sheet. Gambar di bawah ini adalah contoh proyek kerja kami di Google Sheet dan ketikkan di Google sheet tersebut nantinya akan kami hubungkan dengan server Jupyter.Pada bagian sebelah kiri paling atas, anda klik tombol "Share", kemudian anda masukkan (copy paste) username yang telah anda buat di service account di atas, nama usernamenya yaitu "freebsdapiindex@api-indexing-blogger.iam.gserviceaccount.com", perhatikan gambar di bawah ini.
1. Install Depndensi Google Sheet & Google Drive
Google Sheet & Google Drive tak akan bisa terhubung ke Jupyter jika anda belum menginstal beberapa dependensi yang dibutuhkan oleh Jupyter untuk dapat terhubung ke paltform Google tersebut. Berikut adalah cara menginstall dependensi tersebut di Jupyter notebook (kami anggap anda telah menginstall Jupyter Notebook di server anda).Aktifkan Jupyter Notebook
root@hostname1:~# cd /usr/local/etc/jupyternotebook
root@hostname1:/usr/local/etc/jupyternotebook# source bin/activate
(jupyternotebook) root@hostname1:/usr/local/etc/jupyternotebook#
setelah anda mengaktifkan Jupyter Notebook, langkah selanjutnya anda harus menginstal dependensi untuk kedua paltform Google tersebut.
Install dependensi
(jupyternotebook) root@hostname1:/usr/local/etc/jupyternotebook# pip install gspread oauth2client df2gspread
Jika semuanya sudah anda kerjakan, sekarang jalankan Jupyter Notebook nya.
Jalankan Jupyter Notebook
(jupyternotebook) root@hostname1:/usr/local/etc/jupyternotebook# jupyter notebook --ip 192.168.5.234 --port 8888 --allow-root
Setelah anda menjalankan Jupyter Notebook, buka Google Chrome dan ketikkan "http://192.168.5.234:8888/tree" di menu address bar.
Pada dashboard utama Jupyter notebook, klim menu "New" setelah itu pilih "python 3 (ipykernel)".
Jangan lupa anda "upload" juga file "urls.csv" yang berasal dari Google Sheet anda ke dalam dashboard Jupyter anda. Kemudian anda ketikkan script di bawah ini, samakan dengan gambar
# Import libraries
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
# For connect to google sheet
import gspread
from oauth2client.service_account import ServiceAccountCredentials
from df2gspread import df2gspread as d2g
# Configure the connection
scope = ['https://spreadsheets.google.com/feeds']
# Give the path to the Service Account Credential json file
credentials = ServiceAccountCredentials.from_json_keyfile_name('api-indexing-blogger-4fb25d48f39b.json',
scope
)
# Authorise your Notebook
gc = gspread.authorize(credentials)
# The sprad sheet ID, which can be taken from the link to the sheet
spreadsheet_key = '1h4yG4BQ0_PdxISqnod9YnzY1wrvrweydJC4ws_5IEAU'
# Read some data from a csv file into a pandas dataframe
# In this case, we read in the client IDs we got in the Blog
#"Get Google Analytics data to your Jupyter Notebook by using Analytics Reporting API"
df = pd.read_csv('urls.csv',index_col = False)
# Set the sheet name you want to upload data to and the start cell where the upload data begins
wks_name = 'Sheet1'
cell_of_start_df = 'A2'
# upload the dataframe of the clients we want to delete
d2g.upload(df,
spreadsheet_key,
wks_name,
credentials=credentials,
col_names=False,
row_names=False,
start_cell = cell_of_start_df,
clean=False)
print ('The sheet is updated successfully')
Ini bukan sesuatu yang luar biasa, tetapi semoga akan membuat pekerjaan Anda sedikit lebih mudah! Ini Jing, terima kasih telah membaca blog saya! Jangan ragu untuk memuji dan mengajukan pertanyaan! Saya akan menghubungi Anda kembali sesering mungkin.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar