V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bluehtt
V2EX  ›  Spark

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

  •  
  •   bluehtt · 96 天前 · 236 次点击
    这是一个创建于 96 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:利用 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 条回复    2021-09-01 22:14:30 +08:00
    wloverine
        1
    wloverine  
       95 天前
    spark 解析 xml 需求还挺少见的
    bluehtt
        2
    bluehtt  
    OP
       95 天前
    @wloverine #1 因为解析后的数据需要作各种处理,就想一步到位
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2681 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:48 · PVG 21:48 · LAX 05:48 · JFK 08:48
    ♥ Do have faith in what you're doing.