시작하기무료로 시작하기

열 생성하기

이 장에서는 Spark의 DataFrame 클래스가 제공하는 메서드를 사용해 자주 하는 데이터 작업을 수행하는 방법을 배웁니다.

열 단위 연산부터 살펴볼게요. Spark에서는 .withColumn() 메서드를 사용해 이런 작업을 할 수 있습니다. 이 메서드는 두 개의 인수를 받습니다. 첫 번째는 새 열의 이름을 나타내는 문자열이고, 두 번째는 새 열 자체입니다.

새 열은 Column 클래스의 객체여야 합니다. 이는 df.colName처럼 DataFrame에서 열을 추출해 만들 수 있어요.

Spark DataFrame은 pandas와 작업하는 것과는 조금 다릅니다. Spark DataFrame은 불변(immutable) 이기 때문에 변경될 수 없고, 따라서 열을 제자리에서 업데이트할 수 없습니다.

그래서 이러한 메서드는 모두 새로운 DataFrame을 반환합니다. 원래 DataFrame을 덮어쓰려면 다음과 같이 반환된 DataFrame을 다시 할당해야 합니다:

df = df.withColumn("newCol", df.oldCol + 1)

위 코드는 df와 동일한 열에 더해, oldCol의 각 항목에 1을 더한 값을 가지는 새 열 newCol을 포함한 DataFrame을 생성합니다.

기존 열을 덮어쓰려면 첫 번째 인수로 그 열 이름을 전달하면 됩니다!

워크스페이스에는 이미 spark라는 SparkSession이 준비되어 있다는 점을 기억하세요.

이 연습은 강의의 일부입니다

PySpark 기초

강의 보기

연습 안내

  • .catalogflights 테이블 값을 담는 DataFrame을 만들기 위해 spark.table() 메서드에 인수 "flights"를 사용하세요. 결과를 flights로 저장하세요.
  • flights.show()flights의 상단 몇 개 행을 출력하세요. 출력 결과를 확인해 보세요: air_time 열에는 비행 소요 시간이 분 단위로 들어 있습니다.
  • 각 비행의 소요 시간을 시간 단위로 담는 duration_hrs라는 새 열을 포함하도록 flights를 업데이트하세요(시간으로 바꾸려면 air_time을 1시간의 분 수로 나눠야 합니다).

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Create the DataFrame flights
flights = spark.table(____)

# Show the head
____.____()

# Add duration_hrs
flights = flights.withColumn(____)
코드 편집 및 실행