시작하기무료로 시작하기

자주 등장하는 단어 시퀀스 찾기

앞서 길이가 3인 단어 시퀀스(“3-튜플”)를 찾는 쿼리를 만드는 방법을 살펴봤습니다. 그 쿼리를 전통적인 SQL 쿼리의 서브쿼리로 사용해 텍스트 문서에서 가장 자주 등장하는 3-튜플을 찾았지요. 이제 비슷한 작업을 수행해 가장 자주 등장하는 5-튜플을 찾아보겠습니다.

DataFrame text_df가 제공됩니다. 이 DataFrame에는 Sherlock Holmes 본문 중 처음 다섯 개 장이 들어 있으며, word, id, part, title 열을 포함합니다. id 열은 정수로, 문서에서 더 뒤에 나오는 단어일수록 더 큰 id를 가집니다. part 열은 데이터를 장(chapter) 단위로 구분합니다. 또한 DataFrame text_dftext라는 이름의 임시 테이블로 등록되어 있습니다. 우리의 목표는 각 행이 하나의 5-튜플을 나타내고, 그 튜플이 데이터셋에서 몇 번 등장했는지를 표시하는 count 값을 갖는 데이터셋을 생성하는 것입니다.

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

Python에서 Spark SQL 입문

강의 보기

연습 안내

  • 데이터셋에서 가장 자주 등장하는 5-튜플 10개를 찾는 쿼리 query를 만드세요.

실습형 인터랙티브 연습

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

# Find the top 10 sequences of five words
query = """
SELECT w1, w2, w3, w4, w5, COUNT(*) AS count FROM (
   SELECT word AS w1,
   LEAD(____) OVER(____ ) AS w2,
   ____ AS w3,
   ____ AS w4,
   ____ AS w5
   FROM text
)
GROUP BY w1, w2, w3, w4, w5
ORDER BY count DESC, w1, w2, w3, w4, w5
LIMIT ____
"""
df = spark.sql(query)
df.show()
코드 편집 및 실행