구조화된 데이터 처리를 위한 Spark 모듈
특징
- 대화형 Spark 셸이 제공됨
- 하둡 상의 데이터를 기반으로 작성된 Hive 쿼리의 경우 변경없이 최대 100배까지 빠른 성능을 가능하게 해줌
- 데이터프레임을 SQL로 처리 가능
SparkSQL 사용법: 외부 데이터베이스 연결
SparkSession의 read 함수를 사용하여 테이블 혹은 SQL 결과를 데이터프레임으로 읽어온다.
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.config("spark.jars", "/usr/local/lib/python3.6/dist-packages/pyspark/jars/RedshiftJDBC42-no-awssdk-1.2.20.1043.jar") \
.getOrCreate()
df_user_session_channel = spark.read \
.format("jdbc") \
.option("driver", "com.amazon.redshift.jdbc42.Driver") \
.option("url", "jdbc:redshift://learnde.cduaw970ssvt.ap-northeast-2.redshift.amazonaws.com:5439/prod?user=guest&password=Guest1!*") \
.option("dbtable", "raw_data.user_session_channel") \
.load()
namegender_df.createOrReplaceTempView("namegender")
namegender_group_df = spark.sql("
SELECT gender, count(1) FROM namegender GROUP BY 1
")
print(namegender_group_df.collect())