[SCALA] 어떻게 스파크에서 여러 열로 배열을 폭발
SCALA어떻게 스파크에서 여러 열로 배열을 폭발
나는 외모 좋아하는 스파크 dataframe 있습니다 :
id DataArray
a array(3,2,1)
b array(4,2,1)
c array(8,6,1)
d array(8,2,4)
나는에이 dataframe을 변환하려면 :
id col1 col2 col3
a 3 2 1
b 4 2 1
c 8 6 1
d 8 2 4
나는 어떤 기능을 사용해야합니까?
해결법
-
==============================
1.사용이 적용됩니다
사용이 적용됩니다
import org.apache.spark.sql.col df.select( col("id") +: (0 until 3).map(i => col("DataArray")(i).alias(s"col$i")): _* )
-
==============================
2.당신은 데이터 배열에서 각 열을 추가 foldLeft을 사용할 수 있습니다
당신은 데이터 배열에서 각 열을 추가 foldLeft을 사용할 수 있습니다
추가하려는 열 이름의 목록을 작성
val columns = List("col1", "col2", "col3") columns.zipWithIndex.foldLeft(df) { (memodDF, column) => { memodDF.withColumn(column._1, col("dataArray")(column._2)) } } .drop("DataArray")
도움이 되었기를 바랍니다!
from https://stackoverflow.com/questions/49499263/how-to-explode-an-array-into-multiple-columns-in-spark by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 계산 코사인 유사성 스파크 Dataframe (0) | 2020.01.15 |
---|---|
[SCALA] 어떻게 스칼라에서 문자열 "+"연산자를 unimport하는? (0) | 2020.01.11 |
[SCALA] Chisel3 모듈에서 Verilog를 생성하는 방법의 간단한 예를 들어 있나요? (0) | 2020.01.09 |
[SCALA] 어떻게 스칼라에서 두 문자열을 비교? (0) | 2020.01.09 |
[SCALA] 정확히 싱글 타입 무엇입니까? (0) | 2020.01.02 |