자주 등장하는 단어 시퀀스 찾기
앞서 길이가 3인 단어 시퀀스(“3-튜플”)를 찾는 쿼리를 만드는 방법을 살펴봤습니다. 그 쿼리를 전통적인 SQL 쿼리의 서브쿼리로 사용해 텍스트 문서에서 가장 자주 등장하는 3-튜플을 찾았지요. 이제 비슷한 작업을 수행해 가장 자주 등장하는 5-튜플을 찾아보겠습니다.
DataFrame text_df가 제공됩니다. 이 DataFrame에는 Sherlock Holmes 본문 중 처음 다섯 개 장이 들어 있으며, word, id, part, title 열을 포함합니다. id 열은 정수로, 문서에서 더 뒤에 나오는 단어일수록 더 큰 id를 가집니다. part 열은 데이터를 장(chapter) 단위로 구분합니다. 또한 DataFrame text_df는 text라는 이름의 임시 테이블로 등록되어 있습니다. 우리의 목표는 각 행이 하나의 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()