PySpark-Json은 구조체 및 구조체 배열로 중첩되어 폭발합니다.

Prakash

일부 샘플 json으로 중첩 된 json을 구문 분석하려고합니다. 아래는 인쇄 스키마입니다.

 |-- batters: struct (nullable = true)
 |    |-- batter: array (nullable = true)
 |    |    |-- element: struct (containsNull = true)
 |    |    |    |-- id: string (nullable = true)
 |    |    |    |-- type: string (nullable = true)
 |-- id: string (nullable = true)
 |-- name: string (nullable = true)
 |-- ppu: double (nullable = true)
 |-- topping: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- id: string (nullable = true)
 |    |    |-- type: string (nullable = true)
 |-- type: string (nullable = true)

타자를 폭발시키고, 따로 토핑하고 결합하려고합니다.

df_batter = df_json.select("batters.*")
df_explode1= df_batter.withColumn("batter", explode("batter")).select("batter.*")

df_explode2= df_json.withColumn("topping", explode("topping")).select("id", 
"type","name","ppu","topping.*")

두 데이터 프레임을 결합 할 수 없습니다.

단일 쿼리를 사용하여 시도

exploded1 = df_json.withColumn("batter", df_batter.withColumn("batter", 
explode("batter"))).withColumn("topping", explode("topping")).select("id", 
"type","name","ppu","topping.*","batter.*")

그러나 오류가 발생하면 친절하게 해결하도록 도와주세요. 감사

Murtihash

당신은 기본적으로이 함께 사용 반환 구조체의 병합 된 배열을 . 이 시도. 나는 테스트하지 않았지만 작동합니다.explodearrays arrays_zip

from pyspark.sql import functions as F    
df_json.select("id","type","name","ppu","topping","batters.*")\
       .withColumn("zipped", F.explode(F.arrays_zip("batter","topping")))\
       .select("id","type","name","ppu","zipped.*").show()

당신은 또한 그것을 할 수 있습니다 one by one:

from pyspark.sql import functions as F    
    df1=df_json.select("id","type","name","ppu","topping","batters.*")\
           .withColumn("batter", F.explode("batter"))\
           .select("id","type","name","ppu","topping","batter")
    df1.withColumn("topping", F.explode("topping")).select("id","type","name","ppu","topping.*","batter.*")

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Google BigQuery : UNNEST 구조체 배열 및 구조체로 중첩되지 않은 항목

분류에서Dev

PySpark : 배열 내부의 구조체에 중첩 된 구조체에서 변수를 추출하는 방법은 무엇입니까?

분류에서Dev

구조체 및 배열은 문제를 제한합니다.

분류에서Dev

nlohmann json에서 중첩 된 객체의 배열을 중첩 된 구조체의 벡터로 어떻게 변환 할 수 있습니까?

분류에서Dev

C의 구조체에 포함 된 구조체 배열에 구조체를 어떻게 할당합니까?

분류에서Dev

구조체를 배열에 어떻게로드합니까?

분류에서Dev

사용자 지정 Pyspark explode (구조체 배열 용)를 구현하는 방법, 1 개에 4 개의 열이 폭발합니까?

분류에서Dev

다중 Structs 배열을 단일 구조체 유형으로

분류에서Dev

C의 중첩 배열 구조체

분류에서Dev

구조체 및 구조체 멤버의 배열 요소

분류에서Dev

JSON 구조를 개체 배열 및 사전으로 역 직렬화

분류에서Dev

플랫 JavaScript 객체 배열을 중첩 된 계층 적 JSON 구조로 변환하는 방법은 무엇입니까?

분류에서Dev

c ++ 데이터 입력 및 목록의 구조체 구조에서 배열로 다시 읽기

분류에서Dev

Malloc 및 memcpy 구조체와 배열

분류에서Dev

중첩 된 C 구조체의 배열을 업데이트하는 올바른 방법은 무엇입니까?

분류에서Dev

pyspark는 데이터 프레임을 구조체 열과 결합

분류에서Dev

Android의 개조 응답에서 중첩 된 json 객체 및 배열을 얻는 방법은 무엇입니까?

분류에서Dev

열거 자, 구조체 및 클래스의 차이점은 무엇입니까?

분류에서Dev

구조체 및 malloc 내부의 동적 배열이 실패합니다.

분류에서Dev

중첩 된 배열 및 개체 구조의 최하위 항목을 효율적으로 필터링하는 동시에 이러한 항목에 대한 경로 정보를 유지하는 방법은 무엇입니까?

분류에서Dev

다른 구조체 내부의 구조체 배열 초기화

분류에서Dev

다른 구조체의 첫 번째 정의로 중첩 된 구조체는 오프셋이 0입니까?

분류에서Dev

다른 구조체에서 구조체 배열을 초기화하는 방법은 무엇입니까?

분류에서Dev

구조체 배열에서 구조체를 복사하려면 어떻게해야합니까?

분류에서Dev

c의 구조체 내부의 구조체 배열에 값을 어떻게 할당합니까?

분류에서Dev

배열에서 초기화되지 않은 구조체 확인

분류에서Dev

C에서 중첩 된 구조체의 배열을 어떻게 정의합니까?

분류에서Dev

이 JSON 구조가 배열입니까, 객체입니까?

분류에서Dev

PySpark를 사용하여 Spark DataFrame에서 중첩 된 구조체 열의 이름을 모두 소문자로 바꿉니다.

Related 관련 기사

  1. 1

    Google BigQuery : UNNEST 구조체 배열 및 구조체로 중첩되지 않은 항목

  2. 2

    PySpark : 배열 내부의 구조체에 중첩 된 구조체에서 변수를 추출하는 방법은 무엇입니까?

  3. 3

    구조체 및 배열은 문제를 제한합니다.

  4. 4

    nlohmann json에서 중첩 된 객체의 배열을 중첩 된 구조체의 벡터로 어떻게 변환 할 수 있습니까?

  5. 5

    C의 구조체에 포함 된 구조체 배열에 구조체를 어떻게 할당합니까?

  6. 6

    구조체를 배열에 어떻게로드합니까?

  7. 7

    사용자 지정 Pyspark explode (구조체 배열 용)를 구현하는 방법, 1 개에 4 개의 열이 폭발합니까?

  8. 8

    다중 Structs 배열을 단일 구조체 유형으로

  9. 9

    C의 중첩 배열 구조체

  10. 10

    구조체 및 구조체 멤버의 배열 요소

  11. 11

    JSON 구조를 개체 배열 및 사전으로 역 직렬화

  12. 12

    플랫 JavaScript 객체 배열을 중첩 된 계층 적 JSON 구조로 변환하는 방법은 무엇입니까?

  13. 13

    c ++ 데이터 입력 및 목록의 구조체 구조에서 배열로 다시 읽기

  14. 14

    Malloc 및 memcpy 구조체와 배열

  15. 15

    중첩 된 C 구조체의 배열을 업데이트하는 올바른 방법은 무엇입니까?

  16. 16

    pyspark는 데이터 프레임을 구조체 열과 결합

  17. 17

    Android의 개조 응답에서 중첩 된 json 객체 및 배열을 얻는 방법은 무엇입니까?

  18. 18

    열거 자, 구조체 및 클래스의 차이점은 무엇입니까?

  19. 19

    구조체 및 malloc 내부의 동적 배열이 실패합니다.

  20. 20

    중첩 된 배열 및 개체 구조의 최하위 항목을 효율적으로 필터링하는 동시에 이러한 항목에 대한 경로 정보를 유지하는 방법은 무엇입니까?

  21. 21

    다른 구조체 내부의 구조체 배열 초기화

  22. 22

    다른 구조체의 첫 번째 정의로 중첩 된 구조체는 오프셋이 0입니까?

  23. 23

    다른 구조체에서 구조체 배열을 초기화하는 방법은 무엇입니까?

  24. 24

    구조체 배열에서 구조체를 복사하려면 어떻게해야합니까?

  25. 25

    c의 구조체 내부의 구조체 배열에 값을 어떻게 할당합니까?

  26. 26

    배열에서 초기화되지 않은 구조체 확인

  27. 27

    C에서 중첩 된 구조체의 배열을 어떻게 정의합니까?

  28. 28

    이 JSON 구조가 배열입니까, 객체입니까?

  29. 29

    PySpark를 사용하여 Spark DataFrame에서 중첩 된 구조체 열의 이름을 모두 소문자로 바꿉니다.

뜨겁다태그

보관