使用级联将数据集分成多个块

时间:2019-06-30 04:35:46

标签: java hadoop mapreduce cascading

级联是否提供一种将数据集分解为多个块的方法?例如,每个块将包含1000000条记录,或总计1GiB,依此类推。Every + Buffer存在,但需要在前面加上一个我不需要的GroupBy(我也不确定是否打算以这种方式使用它,或者如何准确地实现它。)

2 个答案:

答案 0 :(得分:0)

您是否安装了Python?

import pandas as pd
for i,chunk in enumerate(pd.read_csv('C:/your_path_here/main.csv', chunksize=1000000)):
    chunk.to_csv('chunk{}.csv'.format(i))

import os
os.getcwd()

csvfile = open('C:/your_path/Book1.csv', 'r').readlines()
filename = 1
for i in range(len(csvfile)):
    if i % 1000000 == 0:
        open(str(filename) + '.csv', 'w+').writelines(csvfile[i:i+1000000])
        filename += 1

答案 1 :(得分:0)

您可以使用http://docs.cascading.org/cascading/2.5/javadoc/cascading/tap/hadoop/PartitionTap.html并实现一个Partition来指定如何从TupleEntry到特定子目录。