스파크 폭발 기능이 예상대로 작동하지 않습니다.

프라 틱 루드라

복잡한 XML 구조를 병합하려고합니다. 아래는 XML 파일입니다.

<root>
<ATS  name="exp_Change_Rec">
<EXP1>
<EXP1INT >
<ExPFLDs>
<ExPFLD  precision="10" name="COL1" output="true"/>
<ExPFLD  precision="20" name="COL2" output="true"/>
<ExPFLD  precision="30" name="COL3" output="true"/>
<ExPFLD  precision="40" name="COL4" output="true"/>
</ExPFLDs>
</EXP1INT>
</EXP1>
</ATS>

<ATS  name="exp_Change_Flag">
<EXP1>
<EXP1INT >
<ExPFLDs>
<ExPFLD precision="10" name="COL5" output="true"/>
<ExPFLD precision="20" name="COL6" output="true"/>
<ExPFLD precision="30" name="COL7" output="true"/>
</ExPFLDs>
</EXP1INT>
</EXP1>
</ATS>
</root>

출력을 다음과 같이 기대하고 있습니다.

Name                  Value
exp_Change_Rec        COL1
exp_Change_Rec        COL2
exp_Change_Rec        COL3
exp_Change_Rec        COL4
exp_Change_Flag       COL5
exp_Change_Flag       COL6
exp_Change_Flag       COL7

나는 databricks spark xml을 통해 실행하고 있지만 일종의 Cartesian 조인을 만들고 있습니다.

import org.apache.spark.sql.SparkSession
import com.databricks.spark.xml.
val df1 = spark.read.option("rowTag", "root").xml("file:///home/sv-infopcdq/spark/sample.xml")
val df2 = df1.withColumn("_name", explode($"ATS._name"))
df2.withColumn("COL_NAMES", explode($"ATS.EXP1.EXP1INT.ExPFLDs.ExPFLD")).show(100)

+--------------------+---------------+--------------------+
|                 ATS|          _name|           COL_NAMES|
+--------------------+---------------+--------------------+
|[[[[[[[, COL1, tr...| exp_Change_Rec|[[, COL1, true, 2...|
|[[[[[[[, COL1, tr...| exp_Change_Rec|[[, COL5, true,],...|
|[[[[[[[, COL1, tr...|exp_Change_Flag|[[, COL1, true, 2...|
|[[[[[[[, COL1, tr...|exp_Change_Flag|[[, COL5, true,],...|

여기서 COL1이 exp_Change_Rec 및 exp_Change_Flag와 함께 발행되는 것을 볼 수 있습니다. 어떤 제안이라도 부탁드립니다.

하나의 열을 분해하려고 할 때 출력이 제대로 작동하지만 모든 열을 분해하려고하면 Cartesian 조인이 표시됩니다.

출력을 다음과 같이 원하면

  Name                   Value    Precision
    exp_Change_Rec        COL1      10
    exp_Change_Rec        COL2      20
    exp_Change_Rec        COL3      30
    exp_Change_Rec        COL4      40
    exp_Change_Flag       COL5      10
    exp_Change_Flag       COL6      20
    exp_Change_Flag       COL7      30

"정확도"를 포함하도록 정답을 확장하려면 작동하지 않습니다.

xml_df.withColumn("_name", ($"_name"))
    .withColumn("COL_NAMES",explode($"EXP1.EXP1INT.ExPFLDs.ExPFLD._name")
.withColumn("COL_NAMES",explode($"EXP1.EXP1INT.ExPFLDs.ExPFLD._precision")).drop("EXP1")
      .select($"_name".as("Name"), $"COL_NAMES".as("Value"))

같은 수준에서 여러 열을 분해하는 해결 방법이 있습니까?

프라 틱 루드라

여러 열을 분해하는 솔루션은

df.select(explode(arrays_zip($"col1",$col2))).select( $"col.*").show(20,false)

이 솔루션은 2.4 이상에서 사용할 수 있습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

QMake : 테스트 기능이 예상대로 작동하지 않습니다.

분류에서Dev

WinWaitActive 기능이 예상대로 작동하지 않습니다.

분류에서Dev

Javascript 기능이 예상대로 작동하지 않습니다.

분류에서Dev

div 스크롤이 예상대로 작동하지 않습니다.

분류에서Dev

React JS 스 와이프 기능이 예상대로 작동하지 않습니다.

분류에서Dev

GIT-스파 스 체크 아웃이 예상대로 작동하지 않습니다.

분류에서Dev

Ant의 체크섬 작업이 예상대로 작동하지 않습니다.

분류에서Dev

Meteor 발행물 / 구독이 예상대로 작동하지 않습니다.

분류에서Dev

Python의 다중 스레딩이 예상대로 작동하지 않습니다.

분류에서Dev

img srcset 및 크기가 예상대로 작동하지 않습니다.

분류에서Dev

C의 빈 파일 읽기가 예상대로 작동하지 않습니다.

분류에서Dev

파이프 분할이 예상대로 작동하지 않습니다.

분류에서Dev

파이썬 목록 이해가 예상대로 작동하지 않습니다.

분류에서Dev

sorted () 목록이 예상대로 작동하지 않습니다. 파이썬 2.7

분류에서Dev

jQuery 이벤트 전파가 예상대로 작동하지 않습니다.

분류에서Dev

경로 찾기 자바 스크립트 알고리즘이 예상대로 작동하지 않습니다.

분류에서Dev

소스 건너 뛰기가 예상대로 작동하지 않습니다.

분류에서Dev

슬라이스 방법이 예상대로 작동하지 않습니다.

분류에서Dev

따라서 플레이어와 적을 SKShapeNode에서 .png 파일로 변경 한 후 충돌 효과 (폭발)가 더 이상 작동하지 않습니다.

분류에서Dev

소스 / dev / stdin이 예상대로 작동하지 않습니다.

분류에서Dev

스프링 보안이 예상대로 작동하지 않습니다.

분류에서Dev

C 스레딩 (pthread_create)이 예상대로 작동하지 않습니다.

분류에서Dev

캔버스 회전이 예상대로 작동하지 않습니다.

분류에서Dev

egrep이 SunOS 시스템에서 예상대로 작동하지 않습니다.

분류에서Dev

자바 스크립트 기능이 제대로 작동하지 않습니다.

분류에서Dev

UIView 크기를 조정하는 동안 애니메이션이 예상대로 작동하지 않습니다.

분류에서Dev

부트 로더에서 디스크 읽기 기능이 예상대로 작동하지 않음

분류에서Dev

Stumped :이 스크립트가 예상대로 작동하지 않습니까?

분류에서Dev

React Router : userHistory 푸시 기능이 예상대로 작동하지 않습니다.

Related 관련 기사

  1. 1

    QMake : 테스트 기능이 예상대로 작동하지 않습니다.

  2. 2

    WinWaitActive 기능이 예상대로 작동하지 않습니다.

  3. 3

    Javascript 기능이 예상대로 작동하지 않습니다.

  4. 4

    div 스크롤이 예상대로 작동하지 않습니다.

  5. 5

    React JS 스 와이프 기능이 예상대로 작동하지 않습니다.

  6. 6

    GIT-스파 스 체크 아웃이 예상대로 작동하지 않습니다.

  7. 7

    Ant의 체크섬 작업이 예상대로 작동하지 않습니다.

  8. 8

    Meteor 발행물 / 구독이 예상대로 작동하지 않습니다.

  9. 9

    Python의 다중 스레딩이 예상대로 작동하지 않습니다.

  10. 10

    img srcset 및 크기가 예상대로 작동하지 않습니다.

  11. 11

    C의 빈 파일 읽기가 예상대로 작동하지 않습니다.

  12. 12

    파이프 분할이 예상대로 작동하지 않습니다.

  13. 13

    파이썬 목록 이해가 예상대로 작동하지 않습니다.

  14. 14

    sorted () 목록이 예상대로 작동하지 않습니다. 파이썬 2.7

  15. 15

    jQuery 이벤트 전파가 예상대로 작동하지 않습니다.

  16. 16

    경로 찾기 자바 스크립트 알고리즘이 예상대로 작동하지 않습니다.

  17. 17

    소스 건너 뛰기가 예상대로 작동하지 않습니다.

  18. 18

    슬라이스 방법이 예상대로 작동하지 않습니다.

  19. 19

    따라서 플레이어와 적을 SKShapeNode에서 .png 파일로 변경 한 후 충돌 효과 (폭발)가 더 이상 작동하지 않습니다.

  20. 20

    소스 / dev / stdin이 예상대로 작동하지 않습니다.

  21. 21

    스프링 보안이 예상대로 작동하지 않습니다.

  22. 22

    C 스레딩 (pthread_create)이 예상대로 작동하지 않습니다.

  23. 23

    캔버스 회전이 예상대로 작동하지 않습니다.

  24. 24

    egrep이 SunOS 시스템에서 예상대로 작동하지 않습니다.

  25. 25

    자바 스크립트 기능이 제대로 작동하지 않습니다.

  26. 26

    UIView 크기를 조정하는 동안 애니메이션이 예상대로 작동하지 않습니다.

  27. 27

    부트 로더에서 디스크 읽기 기능이 예상대로 작동하지 않음

  28. 28

    Stumped :이 스크립트가 예상대로 작동하지 않습니까?

  29. 29

    React Router : userHistory 푸시 기능이 예상대로 작동하지 않습니다.

뜨겁다태그

보관