bluehtt
V2EX  ›  Spark

Spark 解析复杂 xml,数据如何映射到多表中

  •  
  •   bluehtt · Sep 1, 2021 · 1903 views
    This topic created in 1721 days ago, the information mentioned may be changed or developed.

    需求:利用 Spark 解析 xml 文件,xml 结构最大深度有 8 层,数据有复杂的关联关系,处理后会插入到 20 多张表中。由于使用工具解析后的 DataFrame 结构过长,简单截取了一部分如下:

    simple dataFrame

    目前没有好的思路,就是获取每一列元素依次遍历提取出所有需要的元素,但是想到要遍历 8 层眼泪都要流下来了:

    // 层层对象遍历
    val identifiers = row.get(0).asInstanceOf[Row].get(0).asInstanceOf[Row].get(0).asInstanceOf[Row].get(0)
    // 解析数组
    println(identifiers.asInstanceOf[mutable.WrappedArray[AnyRef]](0))
    

    就以图示中的结构来说,数据不算复杂,但是完整的结构实在是令人神伤,贴了图恐怕会占据整个页面。另外最终要插入的 20 多张表中十几张是关联表。 初次使用 Spark 处理数据,求大家给点意见和思路,万分感谢!

    2 replies    2021-09-01 22:14:30 +08:00
    wloverine
        1
    wloverine  
       Sep 1, 2021
    spark 解析 xml 需求还挺少见的
    bluehtt
        2
    bluehtt  
    OP
       Sep 1, 2021
    @wloverine #1 因为解析后的数据需要作各种处理,就想一步到位
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1580 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 16:42 · PVG 00:42 · LAX 09:42 · JFK 12:42
    ♥ Do have faith in what you're doing.