首页 > 解决方案 > 如何使用 spark xml 创建嵌套标签

问题描述

我正在尝试将 df 编写为 xml 文件。我的问题是如何在 xml 输出中执行分组。

我的输入数据为 csv 文件:

user_id|acnt_id|transaction|desc 
1      |1234|   012345| desc1
1      |1234|   102345| desc2
1      |5678|   123454| desc1
2      |1234|   345672| desc1

我正在读取 csv 文件并作为 xml 文件写回,我想知道在编写 xml 时如何指定嵌套模式。

目前我能得到什么

<transactions>
  <transaction>
          <user_id>1</user_id>
          <acnt_id>1234</acnt_id>
          <transaction>012345</transaction>
          <desc>desc1</desc>
  </transaction>
  <transaction>
          <user_id>1</user_id>
          <acnt_id>1234</acnt_id>
          <transaction>102345</transaction>
          <desc>desc2</desc>
  </transaction>
  <transaction>
          <user_id>1</user_id>
          <acnt_id>5678</acnt_id>
          <transaction>123454</transaction>
          <desc>desc1</desc>
  </transaction>
  <transaction>
          <user_id>2</user_id>
          <acnt_id>1234</acnt_id>
          <transaction>345672</transaction>
          <desc>desc2</desc>
  </transaction>
</transactions>

预期 o/p

<transactions>
  <transaction>
          <user_id>1</user_id>
              <acnt_id>1234</acnt_id>
                  <transaction>012345</transaction>
                  <desc>desc1</desc>
                  <transaction>102345</transaction>
                  <desc>desc2</desc>
              <acnt_id>5678</acnt_id>
                  <transaction>123454</transaction>        
                  <desc>desc1</desc>
  </transaction>
  <transaction>
          <user_id>2</user_id>
            <acnt_id>1234</acnt_id>
              <transaction>345672</transaction>
              <desc>desc2</desc>
  </transaction>
</transactions>

标签: xmlscalaapache-sparkapache-spark-sqlapache-spark-xml

解决方案


推荐阅读