将150个csv摄取到一个数据源中

时间:2017-06-16 11:34:02

标签: python elasticsearch bigdata

您好我是处理大数据的新手,并且在python中很舒服 我有150个csv,每个大小70MB,我必须在一个来源中集成,以删除基本统计数据,如唯一计数,唯一名称等。

任何人都可以建议我该怎么办? 我遇到了一个包裹' pyelastic search'在python中,我可以在诱人的树冠中使用它。

需要建议!

2 个答案:

答案 0 :(得分:0)

如果您在AWS中,则有一个选项

Step1 - 将数据移至S3(AWS本机文件存储) 第2步 - 为redshift中的每个数据结构创建表 步骤3 - 运行COPY命令将数据从S3移动到Redshift(AWS native DW)

    COPY command loads data in bulk, detects file name pattern

答案 1 :(得分:0)

尝试使用pandas包。

阅读单个csv将是:

import pandas as pd
df = pd.read_csv('filelocation.csv')

如果是多个文件,只需concat个。假设ls是文件位置列表,那么:

df = pd.concat([pd.read_csv(f) for f in ls])

然后将它们写为单个文件,执行:

df.to_csv('output.csv')

当然所有这些对于内存操作都有效(70x150 = ~10.5 GB RAM)。如果这不可行 - 请考虑构建增量流程或使用dask数据帧。