DataFrame에 열을 동적으로 추가하는 방법은 무엇입니까?

마이어 코헨

Seq of String에서 DataFrame에 열을 동적으로 추가하려고합니다.

다음은 예입니다. 소스 데이터 프레임은 다음과 같습니다.

+-----+---+----+---+---+
|id | A | B  | C  | D  |
+-----+---+----+---+---+
|1 |toto|tata|titi|    |
|2 |bla |blo |   |     |
|3 |b   | c  |  a |  d |
+-----+---+----+---+---+

또한 추가하려는 열 이름이 포함 된 Seq of String이 있습니다. 소스 DataFrame에 열이 이미 존재하는 경우 아래와 같은 차이가 있어야합니다.

Seq는 다음과 같습니다.

val columns = Seq("A", "B", "F", "G", "H")

기대치는 다음과 같습니다.

+-----+---+----+---+---+---+---+---+
|id | A | B  | C  | D  | F | G | H |
+-----+---+----+---+---+---+---+---+
|1 |toto|tata|titi|tutu|null|null|null
|2 |bla |blo |   |     |null|null|null|
|3 |b   | c  |  a |  d |null|null|null|
+-----+---+----+---+---+---+---+---+

지금까지 내가 한 일은 다음과 같습니다.

val difference = columns diff sourceDF.columns
val finalDF = difference.foldLeft(sourceDF)((df, field) => if (!sourceDF.columns.contains(field)) df.withColumn(field, lit(null))) else df)
  .select(columns.head, columns.tail:_*) 

그러나 더 간단하고 쉬운 방법으로 Spark를 효율적으로 사용하여 이것을 수행하는 방법을 알 수 없습니다 ...

미리 감사드립니다

아비 라 시스

Seq.diff, single selectmap최종 열 목록을 생성 하는 또 다른 방법은 다음과 같습니다 .

import org.apache.spark.sql.functions.{lit, col}


val newCols = Seq("A", "B", "F", "G", "H")

val updatedCols = newCols.diff(df.columns).map{ c => lit(null).as(c)}

val selectExpr = df.columns.map(col) ++ updatedCols

df.select(selectExpr:_*).show

// +---+----+----+----+----+----+----+----+
// | id|   A|   B|   C|   D|   F|   G|   H|
// +---+----+----+----+----+----+----+----+
// |  1|toto|tata|titi|null|null|null|null|
// |  2| bla| blo|null|null|null|null|null|
// |  3|   b|   c|   a|   d|null|null|null|
// +---+----+----+----+----+----+----+----+

먼저 우리는 newCols와 df.columns 사이의 차이를 찾습니다 F, G, H. 다음으로 목록의 각 요소를 lit(null).as(c)via map함수로 변환 합니다. 마지막으로 기존 목록과 새 목록을 함께 연결 selectExpr하여 select.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

DataTables에 열을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

listveiw에 동적으로 행을 추가하는 방법은 무엇입니까?

분류에서Dev

Rails에서 작업을 동적으로 대기열에 추가하는 방법은 무엇입니까?

분류에서Dev

객체에 배열을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

대기열에 파일을 동 기적으로 추가하는 방법은 무엇입니까?

분류에서Dev

임시 테이블에 동적으로 열을 추가하는 방법은 무엇입니까?

분류에서Dev

대기열에 기능을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

특정 위치에 동적으로 열을 추가하는 방법은 무엇입니까?

분류에서Dev

동적으로 생성 된 값을 NumPy 배열에 추가하는 방법은 무엇입니까?

분류에서Dev

Pandas DataFrame의 열을 동적으로 독립적으로 이동하는 방법은 무엇입니까?

분류에서Dev

동적으로 추가되는 div에 스타일을 적용하는 방법은 무엇입니까?

분류에서Dev

문자열을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

다차원 배열을 기반으로 동적으로 인쇄 된 ol에 클래스를 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

동적 값으로 문자열에서 배열을 추출하는 방법은 무엇입니까?

분류에서Dev

"TextInputLayout"의 오른쪽 끝에 동적으로 드로어 블을 추가하는 방법은 무엇입니까?

분류에서Dev

동적으로 추가되는 경우 fragmentActivity에서 조각을 시작하는 방법은 무엇입니까?

분류에서Dev

react-bootstrap-table 열에 href를 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

notifyDataSetChanged없이 Android에서 GridView에 항목을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

Android Xamarin에서 뷰에 동적으로 버튼을 추가하는 방법은 무엇입니까?

분류에서Dev

expandableListview에서 특정 그룹에 동적으로 자식을 추가하는 방법은 무엇입니까?

분류에서Dev

Android에서 목록에 동적으로 값을 추가하는 방법은 무엇입니까?

분류에서Dev

Spring Boot에서 JMSListener Annotation에 다른 대상을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

많은 열이있는 DataFrame에 컬렉션을 새 열로 추가하는 방법은 무엇입니까?

분류에서Dev

행 기반 계산을 기반으로 Pandas DataFrame에 새 열을 추가하는 방법은 무엇입니까?

분류에서Dev

중첩 된 딕셔너리에 동적으로 값을 추가하는 방법은 무엇입니까?

분류에서Dev

동적으로 생성 된 탐색 탭에 값을 추가하는 방법은 무엇입니까?

분류에서Dev

Kotlin 개체에서 키 값 쌍을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

UWP의 DataGrid에 동적으로 행을 추가하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 사전 사전을 동적으로 추가하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    DataTables에 열을 동적으로 추가하는 방법은 무엇입니까?

  2. 2

    listveiw에 동적으로 행을 추가하는 방법은 무엇입니까?

  3. 3

    Rails에서 작업을 동적으로 대기열에 추가하는 방법은 무엇입니까?

  4. 4

    객체에 배열을 동적으로 추가하는 방법은 무엇입니까?

  5. 5

    대기열에 파일을 동 기적으로 추가하는 방법은 무엇입니까?

  6. 6

    임시 테이블에 동적으로 열을 추가하는 방법은 무엇입니까?

  7. 7

    대기열에 기능을 동적으로 추가하는 방법은 무엇입니까?

  8. 8

    특정 위치에 동적으로 열을 추가하는 방법은 무엇입니까?

  9. 9

    동적으로 생성 된 값을 NumPy 배열에 추가하는 방법은 무엇입니까?

  10. 10

    Pandas DataFrame의 열을 동적으로 독립적으로 이동하는 방법은 무엇입니까?

  11. 11

    동적으로 추가되는 div에 스타일을 적용하는 방법은 무엇입니까?

  12. 12

    문자열을 동적으로 추가하는 방법은 무엇입니까?

  13. 13

    다차원 배열을 기반으로 동적으로 인쇄 된 ol에 클래스를 동적으로 추가하는 방법은 무엇입니까?

  14. 14

    동적 값으로 문자열에서 배열을 추출하는 방법은 무엇입니까?

  15. 15

    "TextInputLayout"의 오른쪽 끝에 동적으로 드로어 블을 추가하는 방법은 무엇입니까?

  16. 16

    동적으로 추가되는 경우 fragmentActivity에서 조각을 시작하는 방법은 무엇입니까?

  17. 17

    react-bootstrap-table 열에 href를 동적으로 추가하는 방법은 무엇입니까?

  18. 18

    notifyDataSetChanged없이 Android에서 GridView에 항목을 동적으로 추가하는 방법은 무엇입니까?

  19. 19

    Android Xamarin에서 뷰에 동적으로 버튼을 추가하는 방법은 무엇입니까?

  20. 20

    expandableListview에서 특정 그룹에 동적으로 자식을 추가하는 방법은 무엇입니까?

  21. 21

    Android에서 목록에 동적으로 값을 추가하는 방법은 무엇입니까?

  22. 22

    Spring Boot에서 JMSListener Annotation에 다른 대상을 동적으로 추가하는 방법은 무엇입니까?

  23. 23

    많은 열이있는 DataFrame에 컬렉션을 새 열로 추가하는 방법은 무엇입니까?

  24. 24

    행 기반 계산을 기반으로 Pandas DataFrame에 새 열을 추가하는 방법은 무엇입니까?

  25. 25

    중첩 된 딕셔너리에 동적으로 값을 추가하는 방법은 무엇입니까?

  26. 26

    동적으로 생성 된 탐색 탭에 값을 추가하는 방법은 무엇입니까?

  27. 27

    Kotlin 개체에서 키 값 쌍을 동적으로 추가하는 방법은 무엇입니까?

  28. 28

    UWP의 DataGrid에 동적으로 행을 추가하는 방법은 무엇입니까?

  29. 29

    파이썬에서 사전 사전을 동적으로 추가하는 방법은 무엇입니까?

뜨겁다태그

보관