apache-spark - 如何最有效地压缩高度独特的列?
问题描述
我有一个 Spark DataFrame,由许多作为度量的双列组成,但我想要一种通过计算其他几个非度量列的哈希来注释每个唯一行的方法。此哈希会导致高度唯一的乱码字符串,并且我注意到当此列存在时,我的数据集大小会显着增加。如何对数据进行排序/布局以减小整体数据集大小?
我知道我的镶木地板文件上使用的 Snappy 压缩协议在运行类似数据时执行得最好,所以我认为对主键进行排序可能很有用,但我也不能将整个数据集合并()到一个文件中(在主键创建步骤之前,它的总大小为数百 GB)。
我的散列函数是 SHA2(128) 仅供参考。
解决方案
如果您有一列可以从其他列中计算出来,那么只需在压缩前省略该列,并在解压缩后重建它。
推荐阅读
- java - 为什么我的公共变量显示为“'this' is not available”?
- swift - 如何在不知道名称的情况下访问 Firestore 字段值?
- php - 如何在使用 oAuth2 的第三方 API 中进行 Laravel 身份验证?
- javascript - Javascript 费用计算
- git - 如何更改git中的用户名?
- lua - 如何检查一个值是否不在 Lua 表中的任何位置?
- go - 我正在使用 Antlr4 创建一种语言,然后我想用它来生成 LLVM IR。我是否需要手写 LLVM IR 来响应我的访客事件?
- javascript - 脚本之间的 Google Chrome 消息 API 不起作用
- bash - 计算 bash 中的目录和文件
- swift - 如何使用协议将数据从视图控制器传递到其中的容器?