열 선택하기
SQL의 SELECT에 해당하는 Spark 메서드는 .select()입니다. 이 메서드는 선택하려는 각 열마다 하나씩, 여러 개의 인자를 받습니다. 인자는 문자열 형태의 열 이름(열마다 하나씩)이나 df.colName 구문을 사용한 열 객체가 될 수 있습니다. 열 객체를 전달하면 .withColumn() 안에서처럼 해당 열에 덧셈이나 뺄셈 같은 연산을 수행해 그 안의 데이터를 변환할 수 있습니다.
.select()와 .withColumn()의 차이는, .select()는 지정한 열만 반환하는 반면, .withColumn()은 사용자가 정의한 열에 더해 DataFrame의 모든 열을 함께 반환한다는 점입니다. 데이터 전처리를 할 때는 초반에 필요 없는 열을 제거해 불필요한 데이터를 계속 끌고 다니지 않는 것이 좋습니다. 이런 경우에는 .withColumn()이 아니라 .select()를 사용합니다.
작업 공간에는 이미 spark라는 SparkSession과 Spark DataFrame flights가 준비되어 있습니다.
이 연습은 강의의 일부입니다
PySpark 기초
연습 안내
- 문자열로 열 이름을 전달해
flights에서"tailnum","origin","dest"열을 선택하세요. 결과를selected1에 저장하세요. df.colName구문을 사용해"origin","dest","carrier"열을 선택한 다음, 미리 정의된 두 필터(filterA와filterB)를 모두 적용해 SEA에서 PDX로 가는 항공편만 남기세요. 결과를selected2에 저장하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Select the first set of columns
selected1 = flights.select("____", "____", "____")
# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)
# Define first filter
filterA = flights.origin == "SEA"
# Define second filter
filterB = flights.dest == "PDX"
# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)