대규모 주류 판매 데이터 분석 - PySpark 환경 셋팅

dpwl·2024년 6월 14일
0

Data Analysis with SQL

목록 보기
100/120

1. PySpark 환경 셋팅

!apt-get install openjdk-8-jdk-headless # jdk 설치
!wget -q https://archive.apache.org/dist/spark/spark-3.0.0/spark-3.0.0-bin-hadoop3.2.tgz # spark file
!tar -xf spark-3.0.0-bin-hadoop3.2.tgz # 스파크 압축풀기
!pip install findspark # 스파크 찾기
!pip install kaggle --upgrade # 캐글 데이터를 다운받기 위해 kaggle library 설치
  • apt-get: 시스템에서 사용 가능한 패키지에 대한 설치, 패키지 검색, 업데이트 및 기타 여러 작업을 수행
  • wget: 웹 상의 파일을 다운로드 받을 때 사용하는 명령어
  • tar: 여려 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어
  • pip: 파이썬에서 외부 라이브러리(패키지)를 설치, 업그레이드, 제거, 검색 등의 작업을 수행
import os # 운영체제와의 상호작용을 돕는 다양한 기능을 제공하는 모듈
import findspark

# 환경변수에 path 지정
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.0.0-bin-hadoop3.2"

findspark.init() # spark의 경우 잘 찾지 못하는 경우가 있어 findsaprk를 이용
from pyspark.sql import SparkSession

spark = (
    SparkSession
    .builder
    .appName("pyspark_test")
    .master("local[*]") # local에서 사용하며, 모든 thread를 사용하도록 지정
    .getOrCreate()
    )
# 지금 만들어진 spark 객체의 설정 알아보기
spark.sparkContext.getConf().getAll()

# 결과값:
# [('spark.app.name', 'pyspark_test'),
#  ('spark.rdd.compress', 'True'),
#  ('spark.serializer.objectStreamReset', '100'),
#  ('spark.app.id', 'local-1718367865659'),
#  ('spark.master', 'local[*]'),
#  ('spark.submit.pyFiles', ''),
#  ('spark.executor.id', 'driver'),
#  ('spark.submit.deployMode', 'client'),
#  ('spark.driver.host', '557a49914c05'),
#  ('spark.ui.showConsoleProgress', 'true'),
#  ('spark.driver.port', '46109')]

2. Kaggle API를 활용해 데이터 불러오기

1) Kaggle 로그인
2) 오른쪽 상단의 프로필 클릭

3) Settings 클릭

4) 페이지 아래로 내리기
5) API 섹션에서 Create New Token 버튼 클릭

6) Continue 버튼 클릭

7) Google Colab에 아래와 같이 쿼리 작성

# 다운받은 file을 colab에 올리기
from google.colab import files

files.upload()

8) Choose files 클릭하여 다운로드한 kaggle.json 파일을 Google Colab에 업로드
9) 아래와 같이 쿼리 작성하여 kaggle 데이터셋 다운로드 및 압축풀기

!mkdir -p ~/.kaggle/  # kaggle 폴더 생성
!cp kaggle.json ~/.kaggle/ # kaggle.json 파일 복사
!chmod 600 ~/.kaggle/kaggle.json # file 접근 권한 할당
!kaggle datasets download -d wethanielaw/iowa-liquor-sales-20230401 # 데이터 다운로드
!unzip /content/iowa-liquor-sales-20230401.zip # 압축풀기
  • mkdir: 디렉토리(폴더) 생성 명령어
  • cp: 파일 복사/이동 명령어
  • chmod: 기존 파일 또는 디렉코리에 대한 접근 권한 변경
    • 600: 나에게만 읽기, 쓰기 권한
  • unzip: zip으로 압축된 파일을 푸는 명령어
profile
거북선통통통통

0개의 댓글