[SCALA] 불꽃의 중첩 Dataframe을 flatmap하는 방법
SCALA불꽃의 중첩 Dataframe을 flatmap하는 방법
나는 다음과 같이 같은 문자열을 내포했다. 나는 불꽃의 고유 한 행을 생산하도록지도 평면에 원하는
내 dataframe가있다
A,B,"x,y,z",D
나는 그것이 같은 출력을 생성 변환 할
A,B,x,D
A,B,y,D
A,B,z,D
어떻게 그렇게 할 수 있습니다.
기본적으로 내가 어떻게 평면 맵을하고 Dataframe 내부의 기능을 적용 할 수 있습니다
감사
해결법
-
==============================
1.스파크 2.0 이상
스파크 2.0 이상
Dataset.flatMap :
val ds = df.as[(String, String, String, String)] ds.flatMap { case (x1, x2, x3, x4) => x3.split(",").map((x1, x2, _, x4)) }.toDF
1.3 이상 스파크.
분할을 사용하여 기능을 폭발 :
val df = Seq(("A", "B", "x,y,z", "D")).toDF("x1", "x2", "x3", "x4") df.withColumn("x3", explode(split($"x3", ",")))
스파크 1.x에서
DataFrame.explode (스파크 2.X에서 사용되지 않음)
df.explode($"x3")(_.getAs[String](0).split(",").map(Tuple1(_)))
from https://stackoverflow.com/questions/36784735/how-to-flatmap-a-nested-dataframe-in-spark by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] flatMap /지도 변환에 대한-이해와 혼란 (0) | 2019.11.01 |
---|---|
[SCALA] 스칼라 웹 프레임 워크를 사용할 수 있습니까? [닫은] (0) | 2019.11.01 |
[SCALA] 스칼라 스파크에서 NullPointerException이, 컬렉션 유형으로 발생하는 것으로 나타납니다? (0) | 2019.11.01 |
[SCALA] 자바 8 요소의 고정 된 수의 여러 목록으로 분할 목록 (0) | 2019.11.01 |
[SCALA] 스칼라 로그인 할 때 어떻게 반환 값을 유지 (0) | 2019.11.01 |