【发布时间】:2020-03-25 17:25:15
【问题描述】:
我会用下面的例子来解释。
|行号 | Col0(类型) | Col1 | Col2 | Col3 | |--------|------------|--------------|------------ --|--------| | 1 | 01 |数据-c1-01 | 1600 美元 | | | 2 | 01 |数据-c1-01 | 12 美元 | | | 3 | 02 |数据-c1-02 | 2019/11/30 | | | 4 | 03 |数据-c1-03 | 1.5 | | | 5 | 01 |数据-c1-01 | 12 美元 | | | 6 | 04 |数据-c1-04 | * | |第 1、2 和 5 行是父行(类型 01)。父行可能有 0 个或多个不同类型的子行。所以第 2 行有两个 02 和 03 类型的子行。
我需要以上述格式加载一个相当大的 CSV,并处理父行及其任何子行(数量可能不同)。子行是任何非 01 类型行,其父行是前面的第一个 01 类型行。所以行顺序很重要。
目前我能想到的唯一解决方案是逐行顺序读写,在每组父子行之间引入唯一键。然后在 spark 中加载这个新的 CSV 以按此键分组。
【问题讨论】:
标签: apache-spark tree