Skip to content

Instantly share code, notes, and snippets.

View rajathithan's full-sized avatar

Rajathithan Rajasekar rajathithan

View GitHub Profile
@rajathithan
rajathithan / main.py
Last active July 30, 2023 06:07
Python script to send email from cloud function using customized html template
#!/usr/bin/env python
# Python script to send email from cloud function using customized html template
# Author: Rajathithan Rajasekar
# Version : 1.0
# Date: 07/30/2023
import os
import pytz
import smtplib
from datetime import datetime
@rajathithan
rajathithan / sample-bq-table-schema.json
Created July 26, 2023 06:30
sample-bq-table-schema json file
[
{
"name":"XXXXX"
"mode": "NULLABLE",
"type": "RECORD",
"fields": [
{
"name":"XXXXX"
"mode": "NULLABLE",
"type": "RECORD",
@rajathithan
rajathithan / batch_test.py
Created July 22, 2023 17:06
Cloud Composer Test Dag
import datetime
from airflow import models
from airflow.operators.bash import BashOperator
YESTERDAY = datetime.datetime.now() - datetime.timedelta(days=1)
with models.DAG(
dag_id="batch_test",
schedule_interval=datetime.timedelta(days=1),
start_date=YESTERDAY,
@rajathithan
rajathithan / cloud-function-dag-trigger.py
Created July 22, 2023 16:58
Cloud Function Python Code to Trigger DAG pipeline
from __future__ import annotations
from typing import Any
import google.auth
from google.auth.transport.requests import AuthorizedSession
import requests
import functions_framework
AUTH_SCOPE = "https://www.googleapis.com/auth/cloud-platform"
CREDENTIALS, _ = google.auth.default(scopes=[AUTH_SCOPE])
web_server_url = "https://658a1a778d2442b9aac55afa02df7ab9-dot-us-east4.composer.googleusercontent.com"
@rajathithan
rajathithan / dataflow-fixed-time-windows.py
Created June 10, 2023 18:20
dataflow-fixed-time-windows
from datetime import datetime
import pytz
import apache_beam as beam
from apache_beam.transforms import window
from log_elements import LogElements
with beam.Pipeline() as p:
@rajathithan
rajathithan / dataflow-window-adding-timestamp.py
Created June 10, 2023 18:14
dataflow-window-adding-timestamp
import datetime
import pytz
import apache_beam as beam
from apache_beam.transforms import window
from log_elements import LogElements
class Event:
@rajathithan
rajathithan / dataflow-utils-withkeys.py
Created June 10, 2023 14:30
dataflow-utils-withkeys
import apache_beam as beam
from log_elements import LogElements
with beam.Pipeline() as p:
(p | beam.Create(['apple', 'banana', 'cherry', 'durian', 'guava', 'melon'])
| beam.transforms.util.WithKeys(lambda x : x[0])
| LogElements())
@rajathithan
rajathithan / dataflow-aggregation-largest.py
Created June 10, 2023 14:01
dataflow-aggregation-largest
import apache_beam as beam
from log_elements import LogElements
with beam.Pipeline() as p:
(p | beam.Create(range(400,500))
| beam.combiners.Top.Largest(5)
| LogElements())
@rajathithan
rajathithan / dataflow-aggregation-smallest.py
Created June 10, 2023 13:59
dataflow-aggregation-smallest.py
import apache_beam as beam
from log_elements import LogElements
with beam.Pipeline() as p:
(p | beam.Create(range(400,500))
| beam.combiners.Top.Smallest(5)
| LogElements())
@rajathithan
rajathithan / log_elements.py
Last active June 10, 2023 13:55
dataflow-log-elements
import apache_beam as beam
class LogElements(beam.PTransform):
class _LoggingFn(beam.DoFn):
def __init__(self, prefix='', with_timestamp=False, with_window=False):
super(LogElements._LoggingFn, self).__init__()
self.prefix = prefix