-
Notifications
You must be signed in to change notification settings - Fork 1
Home
TayPark edited this page Nov 7, 2021
·
32 revisions
스파크 플러스 패키지는 주소체계 데이터베이스와 연동해 위치 정보의 데이터 분석을 위한 데이터프레임을 생성합니다.
$ pip install sparkplus
from sparkplus.core import load_tables
table_df = load_tables(spark_session, table_names, driver="com.mysql.cj.jdbc.Driver", url={db_url}, user={db_user}, password={db_password})
광역시/도 | 테이블 이름 |
---|---|
서울 | intergrated_address_seoul |
인천 | intergrated_address_incheon |
대전 | intergrated_address_daejeon |
세종 | intergrated_address_sejong |
광주 | intergrated_address_gwangju |
대구 | intergrated_address_daegu |
울산 | intergrated_address_ulsan |
부산 | intergrated_address_busan |
제주 | intergrated_address_jeju |
경기 | intergrated_address_gyeonggi |
강원 | intergrated_address_gangwon |
충북 | intergrated_address_chungbuk |
충남 | intergrated_address_chungnam |
전북 | intergrated_address_jeonbuk |
전남 | intergrated_address_jeonnam |
경북 | intergrated_address_gyeongbuk |
경남 | intergrated_address_gyeongnam |
- 최신 시군구 or 읍면동 shp 다운로드
from sparkplus.core import load_gdf
gdf = load_gdf(shp_path, epsg)
from sparkplus.core import CoordDataFrame, AddressDataFrame
주소체계 데이터베이스에서 필요한 광역시 테이블로부터 Spark DataFrame을 생성합니다.
table_df = load_tables(ss, table_names, driver=driver, url=url, user=user, password=password)
table_df.select('roadname_code', 'sido', 'sigungu', 'eupmyeondong').show()
params
-
ss
: Spark Session -
table_names
: 주소체계 데이터베이스에서 불러올 테이블의 이름(str, list type) -
kwargs
- driver: MySQL JDBC Driver(str)
- url: Database URL(str)
- user: Database username(str)
- password: Database password(str)
geometry 정보를 담고 있는 shp 파일로부터 Geo DataFrame을 생성합니다.
gdf = load_gdf(shp_path, epsg)
params
- shp_path: shp file이 있는 디렉토리 경로
- epsg: shp file의 epsg 값(int)
위치 좌표를 포함하는 데이터프레임을 주소체계 데이터베이스와 연동하여 pnu코드, h3, 우편번호, 법정동코드, 도로명주소(시도/시군구/읍면동/법정리/도로명/지하여부/건물 본번/건물 부번), 도로명주소(전체), 지번주소(시도/시군구/읍면동/법정리/지번 본번/지번 분번) 등의 컬럼을 추가합니다.
coord_df = CoordDataFrame(source_df, geo_df, table_df, x_colname, y_colname)
비정형 도로명주소를 포함하는 데이터프레임을 주소체계 데이터베이스와 연동하여 분석 및 시각화할 수 있는 형태의 시도, 시군구, 읍면동,법정동코드, 시군구코드 등의 컬럼을 추가합니다.
address_df = AddressDataFrame(target_colname, source_df)