-
Notifications
You must be signed in to change notification settings - Fork 1
Class Extensions
hwan edited this page Nov 7, 2021
·
18 revisions
coord_df = CoordDataFrame(source_df, geo_df, table_df, x_colname, y_colname)param
- source_df: 위치좌표를 포함하는 Spark DataFrame
- geo_df: shp로부터 생성한 GeoDataFrame
- table_df: 주소체계 데이터베이스 테이블로부터 생성한 Spark DataFrame
- x_colname: 경도 좌표 컬럼 이름(Str)
- y_colname: 위도 좌표 컬럼 이름(Str)
해당 위치 좌표에 매칭되는 PNU 코드 컬럼을 추가합니다.
res_df = coord_df.add_pnu()
res_df.show()
# returns Spark DataFrame
+-----------+-----------+-------------------+
| 위도| 경도| PNU|
+-----------+-----------+-------------------+
|35.87343028|128.6103158|2711010300103670054|
|35.87334197|128.6099071|2711010300103670054|
|35.87327842|128.6096135|2711010300103670054|
+-----------+-----------+-------------------+해당 위치 좌표에 매칭되는 h3 컬럼을 추가합니다.
res_df = coord_df.add_h3()
res_df.show()
# returns Spark DataFrame
+-----------+-----------+---------------+
| 위도| 경도| h3|
+-----------+-----------+---------------+
|35.87343028|128.6103158|8a30c190311ffff|
|35.87334197|128.6099071|8a30c190311ffff|
|35.87327842|128.6096135|8a30c19031affff|
+-----------+-----------+---------------+해당 위치 좌표에 매칭되는 우편번호 컬럼을 추가합니다.
res_df = coord_df.add_zipcode()
res_df.show()
# returns Spark DataFrame
+-----------+-----------+-------+
| 위도| 경도|zipcode|
+-----------+-----------+-------+
|35.64103224|128.4106523| 43013|
|35.66091032|128.4159519| 43006|
| 35.6320721|128.4175234| 43013|
+-----------+-----------+-------+해당 위치 좌표에 매칭되는 법정동코드 컬럼을 추가합니다.
res_df = coord_df.add_bupjungdong()
res_df.show()
# returns Spark DataFrame
+-----------+-----------+----------------+
| 위도| 경도|bupjungdong_code|
+-----------+-----------+----------------+
|35.87343028|128.6103158| 2711010300|
|35.87334197|128.6099071| 2711010300|
|35.87327842|128.6096135| 2711010300|
+-----------+-----------+----------------+해당 위치 좌표에 매칭되는 도로명주소(시도, 시군구, 도로명, 읍면동, 법정리, 지하여부, 건물 본번, 건물 부번) 컬럼을 추가합니다.
res_df = coord_df.add_roadname()
res_df.show()
# returns Spark DataFrame
+-----------+-----------+-------+-------+--------+------------+---------+-----------+-----------------------+-------------------------+
| 위도| 경도| sido|sigungu|roadname|eupmyeondong|bupjungli|is_basement|building_primary_number|building_secondary_number|
+-----------+-----------+-------+-------+--------+------------+---------+-----------+-----------------------+-------------------------+
|35.87343028|128.6103158|대구광역시| 중구|동덕로38길| 동인동3가| | 0| 100| 0|
|35.87334197|128.6099071|대구광역시| 중구|동덕로38길| 동인동3가| | 0| 100| 0|
|35.87327842|128.6096135|대구광역시| 중구|동덕로38길| 동인동3가| | 0| 100| 0|
+-----------+-----------+-------+-------+--------+------------+---------+-----------+-----------------------+-------------------------+해당 위치 좌표에 매칭되는 전체 도로명주소 컬럼을 추가합니다.
res_df = coord_df.add_roadname_addr()
res_df.show()
# returns Spark DataFrame
+-----------+-----------+-----------------------------------+
| 위도| 경도| roadname_address|
+-----------+-----------+-----------------------------------+
|35.87343028|128.6103158| 대구광역시 중구 동덕로38길 동인동3가 100|
|35.87334197|128.6099071| 대구광역시 중구 동덕로38길 동인동3가 100|
|35.87327842|128.6096135| 대구광역시 중구 동덕로38길 동인동3가 100|
+-----------+-----------+-----------------------------------+해당 위치 좌표에 매칭되는 지번주소(시도, 시군구, 읍면동, 법정리, 지번 본번, 지번 부번) 컬럼을 추가합니다.
res_df = coord_df.add_jibun()
res_df.show()
# returns Spark DataFrame
+-----------+-----------+----------+-------+------------+---------+--------------------+----------------------+
| 위도| 경도| sido|sigungu|eupmyeondong|bupjungli|jibun_primary_number|jibun_secondary_number|
+-----------+-----------+----------+-------+------------+---------+--------------------+----------------------+
|35.87343028|128.6103158| 대구광역시| 중구| 동인동3가| | 192| 79|
|35.87334197|128.6099071| 대구광역시| 중구| 동인동3가| | 192| 79|
|35.87327842|128.6096135| 대구광역시| 중구| 동인동3가| | 192| 79|
+-----------+-----------+----------+-------+------------+---------+--------------------+----------------------+address_df = AddressDataFrame(target_column, source_df)param
- target_column: 도로명/지번주소 컬럼 이름
- source_df: 도로명주소 또는 지번주소 컬럼을 포함하는 Spark DataFrame
해당 도로명/지번주소에 매칭되는 법정동코드와 시군구코드 컬럼을 추가합니다.
res_df = address_df.to_bupjungdong(table_df)
res_df.show()
# returns Spark DataFrame
+---------------------------+---------+------------+-----------------+----------------+------------+
| 받는분주소|sido_name|sigungu_name|eupmyeondong_name|bupjungdong_code|sigungu_code|
+---------------------------+---------+------------+-----------------+----------------+------------+
| 서울특별시 강남구 광평로56길 8-9| 서울특별시| 강남구| 수서동| 1168011500| 11680|
| 서울특별시 강남구 남부순환로35...| 서울특별시| 강남구| 도곡동| 1168011800| 11680|
| 서울특별시 강남구 논현로 14| 서울특별시| 강남구| 개포동| 1168010300| 11680|
+---------------------------+---------+------------+-----------------+----------------+------------+params
- table_df: 주소체계 데이터베이스에 불러온 테이블 DataFrame
해당 도로명/지번주소에 매칭되는 시도 컬럼을 추가합니다.
res_df = address_df.add_sido()
res_df.show()
# returns Spark DataFrame
+-----------------------------------+-----+
|target |sido |
+-----------------------------------+-----+
|경기도 화성시 장안면 매바위로366번길 8 |경기도 |
|경기도 화성시 장안면 버들로 |경기도 |
|경기도 화성시 장안면 석포리 |경기도 |
+-----------------------------------+-----+해당 도로명/지번주소에 매칭되는 시군구 컬럼을 추가합니다.
res_df = address_df.add_sigungu()
res_df.show()
# returns Spark DataFrame
+-----------------------------------------+-----------+
target |sigungu |
+-----------------------------------------+-----------+
|경기도 안산시 단원구 해봉로 137 |안산시 단원구 |
|경기도 수원시 장안구 경수대로 1079 |수원시 장안구 |
|경기도 안산시 상록구 양달말길 93-7 |안산시 상록구 |
+-----------------------------------------+-----------+해당 도로명/지번주소에 매칭되는 읍면동 컬럼을 추가합니다.
res_df = address_df.add_eupmyeon()
res_df.show()
# returns Spark DataFrame
+-------------------------------------+--------+
|target |eupmyeon|
+-------------------------------------+--------+
|경기도 화성시 장안면 매바위로366번길 8 |장안면 |
|강원도 원주시 호저면 사제로 9 |호저면 |
|경상남도 사천시 곤양면 경충로 23-1 |곤양면 |
+-------------------------------------+--------+해당 도로명/지번주소에 해당하는 도로명 컬럼을 추가합니다.
res_df = address_df.add_roadname()
res_df.show()
# returns Spark DataFrame
+-------------------------------------+---------+
|split |roadname |
+-------------------------------------+---------+
|경기도 안산시 단원구 해봉로 137 |해봉로 |
|경기도 수원시 장안구 경수대로 1079 |경수대로 |
|경기도 안산시 상록구 양달말길 93-7 |양달말길 |
+-------------------------------------+---------+해당 도로명/지번주소에 해당하는 건물 본번 컬럼을 추가합니다.
res_df = address_df.add_buildling_primary_number()
res_df.show()
# returns Spark DataFrame
+-----------------------------------+-----------------------+
|split |building_primary_number|
+-----------------------------------+-----------------------+
|경기도 안산시 단원구 해봉로 137 |137 |
|경기도 수원시 장안구 경수대로 1079 |1079 |
|경기도 안산시 상록구 양달말길 93-7 |93 |
+-----------------------------------+-----------------------+