Python中文
首页
教程
问答
标签
搜索
登录
注册
使用daskhdf/parqu的Python大数据集特征工程工作流
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>在<a href="https://stackoverflow.com/questions/14262433/large-data-work-flows-using-pandas/14268804">SO</a>中已经有了一个很好的问题,但是最好的答案现在已经有5年了,所以我认为2018年应该会有更好的选择。在</p> <p>我目前正在寻找一个大于内存的数据集的特性工程管道(使用合适的数据类型)。在</p> <h3>初始文件是一个csv,它不适合内存。以下是我的需求:</h3> <ol> <li>创建特性(主要是在多个列上使用groupby操作)</li> <li>将新功能合并到以前的数据(在磁盘上,因为它不适合内存)</li> <li>对一些ML应用程序使用子集(或全部)列/索引</li> <li>重复1/2/3(这是一个迭代过程,类似于day1:create4 功能,第2天:再创建4个…)</li> </ol> <h3>尝试使用拼花地板和护墙板:</h3> <p>首先,我将大的csv文件分成多个小的“parquet”文件。这样,dask对于计算新特性非常有效,但是,我需要将它们合并到初始数据集和atm中,我们不能向parquet文件添加新列。通过块读取csv,合并并重新保存到多个parquet文件是非常耗时的,因为功能工程在这个项目中是一个迭代过程。在</p> <h3>尝试使用HDF和dask:</h3> <p>然后我转向HDF,因为我们可以添加列,也可以使用特殊查询,它仍然是二进制文件存储。为了使用与DASK的并发写入(HDF不允许),我再次使用相同的key='base'将大csv文件拆分为多个HDF。在</p> <pre><code>data = data.repartition(npartitions=10) # otherwise it was saving 8Mo files using to_hdf data.to_hdf('./hdf/data-*.hdf', key='base', format='table', data_columns=['day'], get=dask.threaded.get) </code></pre> <p>(<strong>附录问题:指定数据列对于dask似乎没有用处,因为在中没有“where”读什么?</strong>)</p> <p>与我预期的不同,我无法使用以下代码将新功能合并到多个小文件中:</p> ^{pr2}$ <p>与螺纹接头我得到“python停止工作”在2%之后。 与dask.multiprocessing.get.获取创建新文件需要花费很多时间</p> <p>最适合此工作流的工具(存储和处理)是什么?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我会认真考虑使用数据库(索引访问)作为存储,甚至使用apachespark(以分布式/集群方式处理数据)和Hive/Impala作为后端。。。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何替换子字符串,但前提是它正好出现在两个单词之间
5 回答
如何替换字典中所有出现的指定字符
3 回答
如何替换字典中所有键的第一个字符?
3 回答
如何替换字典所有键中的子字符串
9 回答
如何替换字符串python中的变量值?
7 回答
如何替换字符串Python中的第二次迭代
10 回答
如何替换字符串y Python中不等于字符串x的所有内容?
7 回答
如何替换字符串中出现的第n个单词?
8 回答
如何替换字符串中单词的一部分
10 回答
如何替换字符串中同时出现的2个或更多特殊字符或下划线
10 回答
如何替换字符串中指定位置(索引)的字符?
2 回答
如何替换字符串中某个字符的所有匹配项?
3 回答
如何替换字符串中的
7 回答
如何替换字符串中的一个字符
9 回答
如何替换字符串中的主题(固定位置)
6 回答
如何替换字符串中的分隔逗号?
7 回答
如何替换字符串中的列名(python)?
10 回答
如何替换字符串中的制表符?
5 回答
如何替换字符串中的单个单词而不是用相同的字符替换其他单词
1 回答
如何替换字符串中的单个字符?
8 回答