apache-spark - spark中处理重复值较多的列时尽量减少存储空间
问题描述
我有一个带有相应城市/州的 poi 数据数据框。我正在寻找一种在 pyspark 中尽可能减少此数据的数据存储空间的方法。我认为可能有用的一个特性是 city 和 state 列包含大量重复数据。
+------+---------+---------+
| poi | city |state |
+------+---------+---------+
| abcd | New York| New York|
| cdef | New York| New York|
| xcvd | Chicago | Illinois|
| hjkq | New York| New York|
| acdr | Austin | Texas |
+------+---------+---------+
我想如果我读取数据,按城市和州分区,然后将其保存到磁盘,可能会节省更多空间。
df = sqlContext.read.csv(inFile,sep="\t", quote=None, header=False)
df.repartition("city",'state').write.option("header", "true").partitionBy(["city",'state']).csv(outFile,compression="gzip")
与原始 gz 文件相比,这并没有节省任何空间。我不会经常查询这个表,所以主要目的只是为了节省磁盘空间。还有什么我可以做的吗?
解决方案
推荐阅读
- python - 递归中的Python变量值赋值
- python - pandas get_level_values 行为异常
- c# - 有没有办法从任何控制器方法读取和更新 appSettings.json 文件以在 ASP.NET Core 2 MVC 中保存用户设置
- c# - Selenium ChromeDriver - 实例化驱动程序后更改代理
- python - 使用 Pydev 在 Eclipse 中创建 python 项目失败,为什么?
- sql - 带有 json 的单个菜单的概念
- javascript - jquery自动完成不显示结果
- react-native - 在 Wix React Native Navigation 中从 SingleScreen 推送到 TabBased
- java - 无法让我的网络服务与 tomcat 和 axis2 一起使用
- javascript - 使用 JavaScript 从另一个页面修改页面的 HTML 值