연습 삼아 body 칼럼(3번 칼럼)과 tags 칼럼(8번 칼럼)에 포함된 <와 > 문자열을 각각 <와 > 문자로 바꾸어 보자. 먼저 각 로우를 Seq 객체로 매핑한 후 Seq 객체의 updated 메서드를 사용해 Seq의 요솟값을 변경한다. 그런 다음 updated 결과로 반환된 Seq를 다시 Row 객체로 매핑하고, 원본 DataFrame의 스키마를 사용해 새 DataFrame을 만들 수 있다. 이 과정을 구현한 코드는 다음과 같다.
val postsMapped = postsDf.rdd.map(row => Row.fromSeq( row.toSeq. updated(3, row.getString(3).replace("<","<").replace(">",">")). updated(8, row.getString(8).replace("<","<").replace(">",">")))) val postsDfNew = spark.createDataFrame(postsMapped, postsDf.schema)
하지만 DataFrame API의 내장 DSL, SQL 함수, 사용자 정의 함수 등으로 거의 모든 매핑 작업을 해결할 수 있기 때문에 DataFrame을 RDD로 변환하고 다시 DataFrame으로 만들어야 할 경우는 사실 별로 없다.