Page History
...
Expand | ||
---|---|---|
| ||
import requests chkein = '2018-01-18' |
기본 사용
전체 리스트를 Spark
...
병렬처리용 RDD로 변환
No Format |
---|
hotellist_sc = sc.parallelize(hotels) |
...
이렇게 변환하는 이유는, 대용량 데이터의 복잡한 분산 연산처리를
스파크 API를 통해 간편하게 사용하기 위함이다.
Spark RDD를 전체 리스트로 반환
No Format |
---|
hotellist_sc.collect() |
SparkData의 시각화
Spark에서 처리된 데이터를 시각화하거나? 엑셀에 저장할때 이용합니다.
Panel | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
df = pd.read_json( json.dumps(hotellist_sc.collect() ) ) df
여기서 의미 있는 값이 무엇인지? 필드명을 파악합니다. 필요하면 엑셀로도 저장해줍니다. df.to_excel('output.xls', index=False) |
Spark RDD 기본 API
SQL문을 사용하지 않고, RDD API를 사용하는이유
필터-비싼호텔 찾기
No Format |
---|
expesiveHotel = hotellist_sc.filter( lambda row : row['discount'] > 300000 )
#전체를 다 가져오거나?
expesiveHotel.collect()
#특정 개수만 획득
expesiveHotel.take(5)
==> 데이터 예
[{'addrSummary': '강남 | 삼성역 도보 1분',
'availableRooms': 5,
'displayText': '서울 > 파크 하얏트 서울',
'distance': 0.0,
'districtName': '강남구',
|
중복제거-전체 호텔의 등급리스트 확인
No Format |
---|
grades = hotellist_sc.map( lambda row: row['grade'] ).distinct()
grades.take(100)
==> 결과 : 해당 데이터가 관리하는 grade파악이 가능합니다.
['special1',
'special2',
'grade2',
'motel',
'design',
'biz',
'grade1',
'residence',
'boutique',
'grade3',
'guest_house']
|
사용자 알고리즘 적용
사전준비: 사용할 알고리즘 준비하기
getDistance(
52.2296756
,
21.0122287
,
52.406374
,
16.9251681
)
- edit_distance('강남호텔', '강남호텔a')
근처 호텔찾기
No Format |
---|
#서울의 어느 호텔 'latitude': 37.5700718, 'longitude': 127.0089115
nearHotel= hotellist_sc.filter( lambda row : 5 > getDistance(37.5700718,127.0089115,row['latitude'],row['longitude'] ) )
|
비슷한 이름 호텔찾기
No Format |
---|
siHotel = hotellist_sc.filter( lambda row : 2 > edit_distance('호텔 리안 A',row['name'] ) )
siHotel.take(100) |