프로그래밍 79

[Web] 웹 사이트 개발(Tomcat, Servlet)

※ 개요 - 웹 서버가 실행할 수 있는 자바 프로그램 - 모든 웹 서비스는 웹 서버로부터 웹 클라이언트에게 정보 제공 - 정보 제공 형태는 HTML, CSS, Java Script(클라이언트로 도착해서 실행되는 코드) - 웹 브라우저가 프로그램이 실행되는 플랫폼이 되어가는 추세 * 정보 교환 과정 - 웹 브라우저(웹 클라이언트)를 사용해 구글 웹 서버에 접속한다. - 웹 브라우저 주소창에 http://google.com을 입력하고 엔터(웹 서버 접속) - Domain Name: google.com * 구성 - 물리적인 웹 서버 컴퓨터 - 접속 요청에 응답할 웹 서버 소프트웨어 - 웹 클라이언트 - 웹 서버 간의 통신 규약(HTTP) * Web Server SW 종류 - Apache Web Server: ..

프로그래밍 2021.06.16

[데이터 수집] 빅데이터 수집 시스템 개발(BeautifulSoup)

※ 개요 - 웹 크롤링(Web Crawling) - 웹 스크래핑(Web Scraping): 웹 페이지 내에서 정보를 수집 - 수집 툴 * requests * BeautifulSoup * Selenium: 동적인 컨텐츠까지 접근하여 수집 가능 - 웹 페이지 동작 순서 사용자 클릭 or 동작 -> 요청이 서버로 전달 -> 서버는 해당 컨텐츠 서칭 -> 웹 브라우저로 컨텐츠 다운로드(html 형태, 안에는 실행 가능한 Javascript 내장) -> 추가로 Javascript가 서버에 또 다른 컨텐츠 요청 가능 ※ Requests(웹서버에 대한 요청 전달) - 웹 서버에 접속 - 요청 ≒ 웹 브라우저 주소창에 URL을 입력하고 엔터를 치는 행위 ≒ URL 클릭(링크) - request response(형식: ..

프로그래밍 2021.06.15

[pyspark] pyspark 프로그래밍 예제2

※ employees.csv를 spark DataFrame으로 읽은 후, 아래 질의를 수행 - 급여(Salary)가 5000이상인 50번 부서 소속의 직원들을 대상으로 이름, 부서번호, 급여액을 표시 employee_sdf = spark.read.csv('C:\\labs\\employees.csv', header = True, inferSchema = True) employee_sdf.printSchema() employee_sdf.show() # SQL을 사용한 결과 employee_sdf.createOrReplaceTempView('employees') spark.sql('SELECT LAST_NAME, DEPARTMENT_ID, SALARY FROM employees WHERE SALARY >= 5..

프로그래밍 2021.06.11

[pyspark] pyspark 프로그래밍 예제

※ 3행 3열의 정수 행렬을 생성하고, pandas DataFrame으로 로드한다. import pandas as pd import numpy as np matrix = pd.DataFrame(np.random.randint(0, 100, size = (3, 3)), columns = ['a', 'b', 'c']) matrix ※ pandas DataFrame을 다시 spark.DataFrame으로 변환하여 example.csv로 저장한다. sdf = spark.createDataFrame(matrix) sdf.show() sdf.toPandas().to_csv('C:\\labs\\random.csv', sep=',', index=False) ※ example.csv 파일을 읽어서 spark DataFr..

프로그래밍 2021.06.10

[Spark] Ubuntu 20.04 Spark

※ Apache Spark - RDD(Resilitent(유연한, 탄력적인) Distributed Dataset): 분산된 데이터를 처리할 수 있는 시스템 -> DataFrame으로 발전(가상의 테이블을 만들기 때문에 SQL을 적용할 수 있음) - MLlib: Machine Learning Library, 머신러닝이 가능한 모듈을 가지고 있음 - GraphFrame: 시각화도구 ※ 설치 1. File Download wget https://downloads.apache.org/spark/spark-3.0.2/spark-3.0.2-bin-hadoop3.2.tgz https://downloads.apache.org/spark/spark-3.0.2/ Index of /spark/spark-3.0.2 downl..

프로그래밍 2021.06.09

[Sqoop] Ubuntu 20.04 Sqoop 활용(2) - 예시

※ 요구사항 1. Hive를 통해 HDFS에 로컬 파일을 저장한다. 2. MySQL로 확인했을 때, HDFS에 있는 파일을 테이블로 읽어들일 수 있어야 한다. 3. HDFS에 저장한 로컬 파일을 삭제한다. 4. Sqoop을 사용하여 MySQL에 있는 데이터를 Hive를 거쳐 HDFS 영역에 다시 저장한다. 0. CSV파일 전처리 기존 파일을 확인하니 오타가 있어서 이를 처리하기 위해, 전처리를 시행 import sys import csv with open('biostats.csv', 'w', newline='') as f: writer = csv.writer(f) header = sys.stdin.readline(); for line in sys.stdin.readlines(): tmp_list = li..

프로그래밍 2021.06.08

[Sqoop] Ubuntu 20.04 Sqoop 활용

※ Sqoop(정형 데이터 수집) * MySQL -> Sqoop -> HDFS * RDB -> HDFS * HDFS -> RDB * 대용량 데이터 전송 솔루션 * 커넥터(Connector)를 사용하여 RDBMS에서 HDFS로 데이터를 수집하거나 HDFS에서 RDBMS로 데이터를 보내는 기능 수행 * Oracle, MS-SQL, DB2와 같은 상용 RDBMS와 MySQL과 같은 오픈소스 RDBMS 지원 ※ 설치 1. File Download wget https://downloads.apache.org/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz https://downloads.apache.org/sqoop/1.4.7/ Index of /sqoop/1.4.7 dow..

프로그래밍 2021.06.07

[Python] Text Data Analysis(2)

※ 한글 형태소 분석 * Hannanum * Kkma * Okt * KoNLPy 1. Hannanum from konlpy.tag import Hannanum han = Hannanum() 이 때, " SystemError: java.nio.file.InvalidPathException: Illegal char at index 55: C:\ProgramData\Anaconda3\Lib\site-packages\konlpy\java\* " 라고 에러가 발생하는 경우가 있다. 그럴 때, 아래 단계대로 수행하여 해결하자. 1) JPype를 설치 2) https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 3) JPype1-1.2.0-cp38-cp38-win_amd64.whl ..

프로그래밍 2021.06.06

[Python] Text Data Analysis(1)

* 영어권 텍스트 처리 패키지: NLTK * Stemming(어간 추출) * Lemmatizing(원형 복원) * Pos Tag(품사 부착) 1. NLTK import nltk nltk.__version__ # '3.5' 2. English Text Data Download(Example) & Check # github에서 corpus(말뭉치) 다운로드 nltk.download() # nltk에 들어있는 book 데이터 확인 from nltk.book import * * gutenberg의 파일 리더기 nltk.corpus.gutenberg.fileids() * fileids를 사용해 gutenberg안에 있는 text 데이터 추출 emma = nltk.corpus.gutenberg.raw('austen..

프로그래밍 2021.06.06