Data Engineering/Spark 6

[Linux/Spark] 데이터 분석을 위한 Scala에 대해 알아보자

ScalaScala는 현대적 객체 지향 프로그래밍과 함수형 프로그래밍의 특징을 갖춘 프로그래밍 언어이다.Scala는 Java Virtual Machine (JVM) 위에서 실행되며, Java와 높은 호환성을 가지고 있다.  Scala의 주요 특징- 간결한 표현, 강력한 기능일관성 있는 operator를 가진다."A".equals("B") //JAVA"A"=="B" //Scala 합리적인 class equality-> new class를 선언할 필요 없이 class를 비교할 수 있다.  - 객체 지향 프로그래밍 (Object Oriented Programming, OOP) 클래스와 객체: Scala는 클래스와 객체를 통해 객체지향 프로그래밍을 지원한다.클래스는 데이터와 메서드를 포함할 수 있으며, 객체..

[Linux/Spark] 노트북 환경에서 Spark 사용하기 (Jupyterlab)

Jupyterlab 사용하기- Jupyter lab 설치하기 - bashrc 파일에 경로 추가하기 - 설치 및 환경 설정 후 pyspark를 실행하면 자동으로 브라우저가 열리며 Jupyterlab이 실행된다.    Jupyter lab 환경에서 PySpark를 이용해 데이터 다뤄보기 - 데이터를 읽어오고 쿼리화 하기// 데이터 로드하기 staticDataFrame = spark.read.format("csv")\ .option("header", "true")\ .option("inferSchema", "true")\ .load("./bydata/by-day/*.csv") // 임시 테이블 생성staticDataFrame.createOrReplaceTempView("retail_data")// 데이터..

[Linux/Spark] Apache Spark에 대해 알아보자

Apache Spark Aparche Spark는 디스크 기반의 MapReduce와 달리 메모리 기반의 처리 방식을 사용해 높은 성능을 제공한다.Hadoop은 매번 중간 결과를 디스크 (하드웨어)에 저장한다.-> 데이터 처리 속도가 대폭 개선되었다-> 고성능, Functional programming Interface 메모리 가격이 하락하며 메모리 시장이 호황을 누리던 2012년 등장했다.-> 여러 단계 연산, 반복 연산은 중간 메모리에 저장하여 처리하는 것이 효율적 메모리에 데이터를 캐시하여 반복적인 데이터 액세스와 변환 작업을 빠르게 수행할 수 있다. Machine Learning과 같은 알고리즘처럼 반복 계산이 많은 경우 좋은 성능을 보인다.   Apache Spark의 핵심인 RDD (Resili..

[Linux/Spark] PySpark를 이용해 쿼리 조회하고 데이터 CRUD 해보자

JOIN - Join 실습을 하기 위한 DataFrame 생성하기 (Person, graduateProgram, sparkStatus)person = spark.createDataFrame([ (0, "Bill Chambers", 0, [100]), (1, "Matei Zaharia", 1, [500, 250, 100]), (2, "Michael Armbrust", 1, [250, 100])])\ .toDF("id", "name", "graduate_program", "spark_status")graduateProgram = spark.createDataFrame([ (0, "Masters", "School of Information", "UC Berkeley"), (2, "..

[Linux/Spark] PySpark와 MySQL을 연동해보자

홈 디렉토리에 위치해있던 mysql-connector jar 파일을 spark 디렉토리로 이동시켰다. // mySQL과 PySpark 연동을 위해 세션 생성하기mysql_spark = SparkSession.builder.config('spark.jar','mysql-connector=java-5.1.46.jar')\.master('local').appName('pySpark_MySql').getOrCreate() // 1. 생성한 새로운 세션으로 데이터프레임 가져오기df = ( mysql_spark.read.format('jdbc')\ .option('url','jdbc:mysql://localhost:3306/epldatabase') .option('driver','com.mysql...

[Linux/Spark] Apache Spark를 설치해보자

https://spark.apache.org/downloads.html Downloads | Apache SparkDownload Apache Spark™ Choose a Spark release: Choose a package type: Download Spark: Verify this release using the and project release KEYS by following these procedures. Note that Spark 3 is pre-built with Scala 2.12 in general and Spark 3.2+ providesspark.apache.org Firefox → Apache Spark download → 다운로드 링크 복사 - wget 과 복사한 링크를 이용..