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>|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개 문자까지만 출력하고, 나머지는 중략한다).