ablog

不器用で落着きのない技術者のメモ

Glue 開発エンドポイントの Jupyter Notebook で GeoPy を使ってみた

Glue 開発エンドポイントの Jupyter Notebook で GeoPy を使えることを確認したメモ。

GeoPy を zip で圧縮して S3 バケットにアップロードする

  • GitHub - geopy/geopy: Geocoding library for Python. から [Clone or download] で [Download ZIP] を選択して、ダウンロードする。
  • ダウンロードした geopy-master.zip を解凍して、geopy-master 以下の geopy を zip で圧縮する。
  • S3 バケットを作成して geopy.zip をアップロードする。
    • "s3://yoheia-glue-lib/python/geopy.zip" というパスにアップロードしたとする。

開発エンドポイントを作成する

  • 開発エンドポイント作成時に [セキュリティ設定、スクリプトライブラリおよびジョブパラメータ (任意)] でパスを指定する。
    • Python ライブラリパス: s3://yoheia-glue-lib/python/geopy.zip

実行結果

  • コード
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
from pyspark.sql import SQLContext
from pyspark.sql.functions import year, month, date_format

from geopy.geocoders import Nominatim
location = geolocator.reverse("52.509669, 13.376294")
print(location.address)
  • 出力結果
Steinecke, Potsdamer Platz, Tiergarten, Mitte, Berlin, 10785, Deutschland

f:id:yohei-a:20200324235513p:plain