python - 使用 PySpark 将包含 200 万条记录的行转换为列
问题描述
输入数据框
R_ID | C_ID | 价值 |
---|---|---|
1 | 1 | 全部 |
1 | 2 | BALANCE_13_24_SWITCH |
1 | 3 | 是的 |
2 | 1 | 全部 |
2 | 2 | MATCHING_IC_SWITCH |
2 | 3 | 是的 |
输出数据框
? | ? |
---|---|
全部 | BALANCE_13_24_SWITCH |
全部 | MATCHING_IC_SWITCH |
我想从输入文件中获取 200 万条记录,并使用 PySpark 中的数据透视将行转换为列。我已经编写了如下代码。但只有输入文件行数小于 10000 时才有效,超过 200 万条记录时无效。是否有任何有效的方法可以对大容量数据执行相同的逻辑?
df = df.groupBy(col("R_ID")).pivot("C_ID").agg(coalesce(first(col("VALUE"))))
解决方案
推荐阅读
- java - Apache Poi Excel(.xlsx) 文件已损坏。(使用 XSSF)
- ruby-on-rails - 为员工安排假期任务
- qt - 在 QML 中,有没有办法在 Item 上设置 anchor.bottom 而无需设置高度?
- rust - “fn main() -> ! {...}”时无法运行功能模块
- android - 如何从我的 Android 应用程序配对 Galaxy Watch 3
- go - 使用结构中的 int 字段检查 nil?
- tensorflow - 当我使用 tensorflow2 的子类化 API 时,出现了一些奇怪的问题:有些层可以重用,有些不能,为什么
- javascript - TypeScript,具体的未定义值
- r - 你如何将频率表转换为r中的列表
- python - 让它更快解决?