더북(TheBook)

register 함수로 사용자 정의 함수를 원하는 이름으로 등록할 수 있으며, SQL 표현식에서도 이 함수를 사용할 수 있다(SQL 표현식은 5.3절에서 자세히 다룬다).

이제 countTags UDF를 정의했으니 이 함수로 Column 정의를 생성해 select 문에 전달할 수 있다(출력 결과는 지면 관계상 중략했다).

scala> postsDf.filter('postTypeId ===1).
  select('tags, countTags('tags) as "tagCnt").show(10, false)
+------------------------------------------------------------------+------+
|tags                                                              |tagCnt|
+------------------------------------------------------------------+------+
|<word-choice>                                               |1     |
|<english-comparison><translation><phrase-request&gt|3     |
|<usage><verbs>                                        |2     |
|<usage><tenses><english-comparison>             |3     |
|<usage><punctuation>                                  |2     |
|<usage><tenses>                                       |2     |
|<history><english-comparison>                         |2     |
|<idioms><etymology>                                   |2     |
|<idioms><regional>                                    |2     |
|<grammar>                                                   |1     |
+------------------------------------------------------------------+------+

 

두 번째 인수인 false 플래그는 show 메서드가 출력된 문자열을 중략하지 않도록 설정한다(지정하지 않으면 앞쪽 20개 문자까지만 출력하고, 나머지는 중략한다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.