Skip to content

Instantly share code, notes, and snippets.

View karol-blaszczyk's full-sized avatar
🎯
Focusing

Karol Błaszczyk karol-blaszczyk

🎯
Focusing
View GitHub Profile
import sys
import re
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.dynamicframe import DynamicFrame
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.sql.functions import col
from awsglue.transforms import *
import pg8000
@karol-blaszczyk
karol-blaszczyk / README.md
Created January 16, 2023 21:11 — forked from palewire/README.md
How to push tagged Docker releases to Google Artifact Registry with a GitHub Action

How to push tagged Docker releases to Google Artifact Registry with a GitHub Action

Here's how I configured a GitHub Action so that a new version issued by GitHub's release interface will build a Dockerfile, tag it with the version number and upload it to Google Artifact Registry.

Before you attempt the steps below, you need the following:

  • A GitHub repository that contains a working Dockerfile
  • The Google Cloud SDK tool gcloud installed and authenticated

Create a Workload Identity Federation

## Connect PG8000 to database
conn = pg8000.connect(database=args['db_name'],user=args['db_user'],password=args['db_password'],host=args['db_host'],port=5432)
cur = conn.cursor()
# ...
# Example upsert query
cur.execute("INSERT INTO {} SELECT * FROM {} ON CONFLICT (id) DO UPDATE SET name = EXCLUDED.name".format('campaigns', 'tmp_staging_campaings'))
# ...
conn.commit()
cur.close()
conn.close()
%pyspark
import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.transforms import *
# Create a Glue context
glueContext = GlueContext(SparkContext.getOrCreate())
# Create a DynamicFrame using
%pyspark
import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.transforms import *
# Create a Glue context
glueContext = GlueContext(SparkContext.getOrCreate())
# Create a DynamicFrame using
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
## @params: [JOB_NAME]
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
sc = SparkContext()
glueContext = GlueContext(sc)
## @params: [JOB_NAME]
args = getResolvedOptions(sys.argv,
['JOB_NAME',
'db_name',
'db_user',
'db_password',
'db_host'])
def _save_to_database(frame, table_name):
frame.toDF().write.format("jdbc").mode('overwrite')\
.option("url", "jdbc:postgresql://{}:5432/{}".format(args['db_host'],args['db_name'])) \
.option("user", args['db_user']).option("password", args['db_password'])\
.option("truncate", "true") \
.option("dbtable", table_name).save()
@karol-blaszczyk
karol-blaszczyk / gist:8332124
Created January 9, 2014 10:19
Localization
def self.search_pricings_for(service_ids, postal_code)
pcc = PostalCodeCoordinates.find_by_postal_code(postal_code) if postal_code
lat_lon = pcc.lat_lon_string if pcc
unless pcc
search = Tire.search do |search|
search.size 0
end
return search
end
@karol-blaszczyk
karol-blaszczyk / Mixpanel
Last active December 31, 2015 01:59
Mixpanel
mixpanel.register_once({
"initial referrer": document.referrer
});
- if user_signed_in?
:javascript
mixpanel.identify(#{current_user.try(:id)});
mixpanel.register_once({