공부하는 스누피

[Spark] DataFrame 다루기 본문

Data Engineering

[Spark] DataFrame 다루기

커피맛스누피 2022. 4. 20. 19:39

- Python 환경

 

## DataFrame이란?

정형화된 scheme을 갖고 있는 Spark 데이터 구조.

 

## Dictionary를 DataFrame으로 만들기

data = [{'color': 'yellow', 'weight': 200},
		{'color': 'yellow', 'weight': 200}]
        
df = spark.createDataFrame(data)

 

## DataFrame 보기

# table 형태로 dataframe의 모든 데이터를 보여 준다.
df.show()

# dataframe에서 특정 인덱스의 데이터를 가져온다.
df.take(index)

# data schema를 볼 수 있다.
df.printSchema()

 

## 데이터 필터링하기

- 필터링은 select * where~과 같은 역할을 한다. 

- 따라서 필터링의 대상이 반환된다.

# 필터링된 결과물은 dataframe이다.
# df의 속성값으로 필터링
df.filter(df.color == "yellow").show()

# col() 사용하여 필터링
from pyspark.sql.functions import col
df.filter(col("color") == "yellow").show()

# sql 표현으로 필터링
df.filter("color == 'yellow'").show()

# 복합 조건으로 필터링
df.filter((df.color == "yellow") & (df.weight < 200)).show()

# 리스트 기반으로 필터링
li = ["yellow", "red", "green"]
df.filter(df.color.isin(li)).show()
df.filter(~df.color.isin(li)).show()


# 문자열로 필터링
df.filter(df.color.startswith("y")).show() # y로 시작하는것 필터링
df.filter(df.color.endswith("w")).show() # w로 끝나는것 필터링
df.filter(df.color.contains("y")).show() # y를 포함하고 있는것 필터링
df.filter(df.color.like("%ello%")).show() # SQL like와 같은 역할. 정규표현식은 rlike 사용

 

## 컬럼 값 갱신하기

# withColumn(col, val)은 컬럼의 값을 변경할 수 있게 한다.
df2=df.withColumn("weight", df.weight*1000)

# when()으로 조건도 추가할 수 있다.
df3 = df.withColumn("weight", when(df.color == "yellow", df.weight*1000).when(...).otherwise(df.weight))

 

 

참고

https://parkaparka.tistory.com/18

 

apache-spark의 Dataframe(1) - pyspark

Dataframe 개요 spark 에서 제공하는 데이터 구조 중 하나이 Dataframe에 대해 알아보도록 하자. spark에서 많이 사용하는 다른 데이터 구조인 RDD는 schema를 정하지 않는 것과 달리 Dataframe은 모델 schema를..

parkaparka.tistory.com

https://sparkbyexamples.com/pyspark/pyspark-where-filter/

 

PySpark Where Filter Function | Multiple Conditions - Spark by {Examples}

PySpark filter() function is used to filter the rows from RDD/DataFrame based on the given condition or SQL expression, you can also use where() clause instead of the filter() if you are coming from an SQL background, both these functions operate exactly t

sparkbyexamples.com

https://sparkbyexamples.com/pyspark/pyspark-update-a-column-with-value/

 

PySpark Update a Column with Value - Spark by {Examples}

You can do update a PySpark DataFrame Column using withColum(), select() and sql(), since DataFrame’s are distributed immutable collection you can’t really change the column values however when you change the value using withColumn() or any approach, P

sparkbyexamples.com

 

Comments