Page History
...
No Format |
---|
schema = StructType( [ StructField('hotelIdx',LongType(),True), StructField('discount',LongType(),True), StructField('name',StringType(),True) ]) dfHotels = sqlContext.createDataFrame(rddHotels, schema) |
데이터셋으로 변경하면 , 집계처리에서 RDB에 사용하는 SQL문및 관계형 DB에 집합을 정복하는
JOIN문 활용도 가능합니다. 여기서 NOSQL의 의미를 알아야 합니다. Not Only SQL로 SQL문만을
사용하지 않겠다란 의미며 사실은 SQL문은 집계처리에 있어서 중요한 위치를 차지하며
RDB가 하듯이 데이터 엔티티정의를 통해 관계형 DB처럼 집계처리를 할수가 있습니다.
Expand | ||
---|---|---|
| ||
| |
데이터 셋을 통해 SQL문사용하기
No Format |
---|
dfHotels.createOrReplaceTempView('tblHotel')
spark.sql('select * from tblHotel').collect() |
RDB에서 사용하는 SQL문을 모두 모두 지원하지 않을테지만,
대용량 데이터속에서 sql문을 통해 추출을 진행할수가 있습니다.
SparkData의 시각화
Spark에서 처리된 데이터를 시각화하거나? 엑셀에 저장할때 이용합니다.
Panel | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pdHotels = pd.read_json( json.dumps(rddHotels.collect()) ) pdHotels
여기서 의미 있는 값이 무엇인지? 필드명을 파악합니다. 필요하면 엑셀로도 저장해줍니다. pdHotels.to_excel('output.xls', index=False) |
즉시 데이터의 결과를 확인하고, 몇가지 파이썬툴을 통해 정적 웹페이지로 만들어
랭킹처리에대한 결과를 사용자에게 제공해줄수도 있습니다.
Spark RDD 기본 API
필터-비싼호텔 찾기
...
No Format |
---|
#서울의 어느 호텔 'latitude': 37.5700718, 'longitude': 127.0089115 nearHotel= rddHotels.filter( lambda row : 5 > getDistance(37.5700718,127.0089115,row['latitude'],row['longitude'] ) ) nearHotel.take(10) nearHotel.count() |
Expand | ||
---|---|---|
| ||
반경검색을 더 빠르게 작동 시키기 : pyspark 반경검색
비슷한 이름 호텔찾기
No Format |
---|
siHotel = rddHotels.filter( lambda row : 3 > edit_distance('메아 펠드',row['name'] ) ) siHotel.take(100) |
...