apache-spark - 如何使用 Pyspark 缓存增强的数据帧
问题描述
我有一个大型数据框,我在每次转换中都会增加它,我需要优化执行时间。我的问题是在每次转换后做一个 cache() ?
partitions=100
df = df.repartition(partitions, "uuid").cache()
df_aug = tran_1(df).cache()
df_aug = tran_2(df_aug).cache()
.
.
df_aug = tran_n(df_aug)
解决方案
缓存不是提高性能的灵丹妙药 - 在您的情况下,它可能会减慢一切。当您多次访问同一个数据集时(例如在数据探索中),使用缓存是个好主意。如果您对单个数据集进行多次转换,它将导致序列化和存储,而它只会被读取一次。
推荐阅读
- r - 从具有多个字符的列表中创建单个字符变量
- macos - 将 vagrant 升级到 2.1.1 后,vagrant synced_folder 无法正常工作
- c# - 使用字符串盐生成密码哈希
- r - 拆分数据框并保留共享列
- graphql - GraphQL 是否将 null 解释为真实?
- sql - 别名后的括号
- linkedin - WhereHows, wherehows-common 构建错误(创建的工作太多)
- django - 如何在views.py中获取来自urls.py的参数
- selenium-webdriver - 无法点击 facebook 应用权限页面
- react-native - 收到错误没有为类 RCTRawText 定义 ViewManager