Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

대용량 데이터 분석에 있어서 RDB에서 SQL문만을 사용하여 추출하는 컨셉에서 탈출하고자업그레이드를 하고자

NOSQL진영은 무엇을 사용하고 활용하는가? 의 물음에 SPARK를 알게되었고

단순한 집계와 필터처리를 PYSPARK에서 PYSPARK에서는 어떻게 작동시키는가란 코딩을 하는가란 단순한 문서정리입니다.



Table of Contents

...

  • Request를 통해 크롤링하기

  • 크롤링된 데이터를 , 원하는 Json으로 변환하기


SPARK의 분석대상 소스 : 분석대상의 소스 제약이 없다고 보시면 되며, 분석결과역시 다양한 방식으로 저장이 가능하며

1차분석 결과를 다시 분석소스로 사용이가능합니다. 여기서는 단순하게 엑셀로 Export하겠습니다. 

엑셀은 분석결과를 가장 심플하고 강력하게 재필터링 할수 있는 툴의 하나입니다. 

  • RDB( MSSQL, 오라클,MYSQL)
  • KAFKA (실시간 스트림)
  • NOSQL기반 DB(하둡등등등)
  • 로그기반(간단한 전송시스템 필요)
  • 크롱링 데이터 바로 소비
  • 파일기반(엑셀,CSV등등등)


기본 사용

Json List객체를  Spark 병렬처리용 RDD로  변환

...

RDB에서 사용하는 SQL문을 모두 모두 지원하지 않을테지만

대용량으로 처리된 1차데이터를

대용량 데이터속에서 sql문을 통해 추출을 진행할수가 있습니다.

Sql문을 통해  편리하게 2차 요약처리를 사용할수가 있습니다.



관련키워드 : Dataframe,SQL  -RDB와 성능적으로 상호연동을 하려면 Datafame이라는 Spark영역을 조금더 살펴볼필요가 있습니다.

https://spark.apache.org/docs/latest/sql-programming-guide.html

SparkData의 시각화 

Spark에서 처리된 데이터를 시각화하거나? 엑셀에 저장할때 이용합니다.

...

즉시 데이터의 결과를 확인하고, 몇가지 파이썬툴을 통해 정적 웹페이지로 만들어

랭킹처리에대한 결과를 사용자에게 제공해줄수도 있습니다.

쥬피터를 사용해보진 못했지만, 요 녀석이 조금더 고급적인 시각관리기능을 제공합니다.

관련 키워드 : pandas라는 dataframe이 사용되었습니다.

Spark RDD 기본 API

필터-비싼호텔 찾기

...

커스텀한 알고리즘이 어떻게 상호연동이 될수 있나 간단하게 살펴보겠습니다. 


알고리즘 샘플 : math-util    - 구글링해서 원하는 알고리즘을 획득합니다.( 수학자가 아니기때문에 우린 검증된 공식을 이용할것입니다.)

  • getDistance(52.2296756,21.0122287,52.406374,16.9251681) : 위경도 기반 얼마나 가깝나?
  • edit_distance('강남호텔', '강남호텔a')   : 얼마나 편집을 해야 같아지나 간단한 문자열 유사도검사?

...

No Format
siHotel = rddHotels.filter( lambda row : 3 > edit_distance('메아 펠드',row['name'] ) )
siHotel.take(100)
Expand
title작동결과



Warning
title마치며

개인적인 의견임으로, 모두의 동의를 얻어내기 어려운 내용입니다.


RDB에서 이용되는 SQL문을 통한 집계처리의 방법은 , Spark내에서도 DataFrame을 통해 동일하게 중요한 요소이며

중요한 데이터의 소스가 대부분 RDB에 있기때문에 이것을 버리고 생각하는것은 있을수 없는일입니다.

RDB의 한계를 단점으로 지적하였지만, 사실 그 한계까지 분석/통계에 대해 이용해본 경험이 부족하기 때문이기도합니다.


대용량데이터라는 추상적인 개념에 가려져 SQL문을 쓰지않겠다, 왜 빅데이터는 관계형이 아니여야하는가? 에대한 물음에

RDB를 이용하지 않겠다란 잘못된 해석을 해왔는데 SPARK를 연구하면서 RDB의 SQL문을 같이 병행해서 학습을 해야할 필요를 느끼게되었으며

- 의미있고 원하는 데이터가 무엇이냐? 명확한 질의를 한다란것은 어려운 주제이며 , 이것을 연습하는 가장좋은것은 SQL문입니다.


-NoSQL : NotOnlySQL - SQL문만을 쓰지않겠다(O) , SQL문을 안쓰겠다 (x) , Not Used SQL( X)

하둡의 분산형처리인 맵리듀스의 선언을, SQL문을 쓰지 않겠다란 선언으로 알고 있었습니다만

아주 큰차이가 있으며 위 차이를 구분하는데 아주 오랜시간이 걸렸습니다.


다만 빅 데이터는 왜 비관계형이어야 하는가? 이 주제는 RDB를 다시 공부하게 하는 좋은 주제입니다.

참고URL : https://blog.outsider.ne.kr/519


글쓴이는 데이터분석 전문가가 아님을 밝혀두며, 전문가가 제공한 쿼리를 어떻게 이용하고 빠르게

어플리케이션을 통해 전달할까? 메시징 처리에 조금더 중심을둔 미들웨어 개발자이며

SPARK이 데이터 분석처리, 메시징처리 둘의 컨셉을 통합하는 바람에

학습해야할 경계를 넘어야하며, 귀찮아졌네라고 생각하는 개발자중에 하나입니다.


대충 살펴보는 데이터 분석의 변천사

SQL(RDB) → NOSQL(하둡등) → SPARK(모든것 을 이용한 통합) ← 고급연산및 AI는 지원되고 봐야함



글쓴이도 RDB와 SQL의 한계는 무엇인가? 고민한적이 없기때문에 갑자가 나타난 SPARK을 통한 빅데이터처리란 부분은

적절한 비유일지 모르겠지만 스타워즈 라스트 제다이만 보고 스타워즈 세계관을 이해해야 하는 상황입니다.

SPARK은 RDB와 병행해서 익혀야 하는 주제이며 SPARK이 다루는 모든 소스(RDB,크롤,카프카,하둡)를 같이 배워야하는 과제가 생겨났습니다.