20. 用跨网游标处理多行大数据
大数据文件 MulLineData.csv 中,每位人员的数据分为 2 行记录,包括 ID、NAME、GENDER、BIRTHDAY、CITY、STATE 等信息。请列出生日为 5 月 5 日的人员信息。建议调用跨网游标计算,先将每 2 行数据合并,生成游标。
参考答案:
解答:
A | B | C | |
---|---|---|---|
1 | =file(“MulLineData.csv”).cursor@c() | ||
2 | for A1,1000 | =A2. step(2,1) | =A2. step(2,2) |
3 | =join@p(B2:Row1; C2:Row2) | =B3.new(Row1.#1:ID, Row1.#2:Name, Row1.#3:Gender, Row2.#1:Birthday, Row2.#2:City, Row2.#3:State) | |
4 | return C3 |
为了更便于理解,简化代码,可以用上面的 mulLineCursor.splx 先将数据每两行一组合并为游标,在作为游标被调用时将循环读取数据,每次读入 1000 行生成 500 条记录返回,用这样的方式实现遍历的效果。而在主网格调用跨网游标就比较简单了:
A | |
---|---|
1 | =cursor(“mulLineCursor.splx”) |
2 | =A1.select(month(Birthday)==5&& day(Birthday)==5) |
3 | =A2.fetch() |
英文版