Page History
...
No Format |
---|
import pyspark import requests import pandas as pd import json from pyspark.sql import SparkSession from pyspark.sql.types import * from pyspark.sql import SQLContext sc = pyspark.SparkContext('local[*]') spark = SparkSession(sc) sqlContext = SQLContext(sc) |
spark 객체는 분산컴퓨팅을위해 여러개를 선택할수도 있으나, 여기서는 로컬 객체 하나만 사용하겠습니다.
...
전체 리스트를 Spark 병렬처리용 RDD로 변환
No Format |
---|
hotellist_scrddHotels = sc.parallelize(hotels) |
이렇게 변환하는 이유는, 대용량 데이터의 복잡한 분산 연산처리를
...
Spark RDD를 전체 리스트로 반환
No Format |
---|
hotellist_scrddHotels.collect() |
SparkRDD 를 데이터셋으로
No Format |
---|
schema = StructType( [
StructField('hotelIdx',LongType(),True),
StructField('discount',LongType(),True),
StructField('name',StringType(),True)
])
dfHotels = sqlContext.createDataFrame(rddHotels, schema) |
SparkData의 시각화
Spark에서 처리된 데이터를 시각화하거나? 엑셀에 저장할때 이용합니다.
...
필터-비싼호텔 찾기
No Format |
---|
expesiveHotel = hotellist_scrddHotels.filter( lambda row : row['discount'] > 300000 ) #전체를 다 가져오거나? expesiveHotel.collect() #특정 개수만 획득 expesiveHotel.take(5) ==> 데이터 예 [{'addrSummary': '강남 | 삼성역 도보 1분', 'availableRooms': 5, 'displayText': '서울 > 파크 하얏트 서울', 'distance': 0.0, 'districtName': '강남구', |
...
중복제거-호텔 관리데이터 확인
No Format |
---|
grades = hotellist_scrddHotels.map( lambda row: row['grade'] ).distinct() grades.take(5) ==> 결과 : 해당 데이터가 관리하는 grade파악이 가능합니다. ['special1', 'special2', 'grade2', 'motel', 'design'] regions = hotellist_scrddHotels.map( lambda row: row['districtName'] ).distinct() regions.take(5) ==> 결과 ['중구', '강남구', '서초구', '강서구', '구로구'] |
...
No Format |
---|
#서울의 어느 호텔 'latitude': 37.5700718, 'longitude': 127.0089115 nearHotel= hotellist_scrddHotels.filter( lambda row : 5 > getDistance(37.5700718,127.0089115,row['latitude'],row['longitude'] ) ) nearHotel.take(10) nearHotel.count() |
...
비슷한 이름 호텔찾기
No Format |
---|
siHotel = hotellist_scrddHotels.filter( lambda row : 2 > edit_distance('호텔 리안 A',row['name'] ) ) siHotel.take(100) |
...