Map将拆分数据集缩减为列

时间:2014-04-25 13:45:15

标签: java python csv mapreduce dataset

我有一个TSV / CSV数据集(超过100gb),我需要将数据集拆分为列数据集。例如:n行和m列的输入数据集需要输出m个数据集,每个数据集包含一行n行。

输入1数据集

a  b  c
x  y  z
1  v  a

输出3数据集

dataset1 : a x 1
dataset2 : b y v
dataset3 : c z a

1 个答案:

答案 0 :(得分:1)

基本原则是

  • 打开输入文件以进行阅读
  • 使用您最喜爱的TSV / CSV解析器阅读第一行
  • 会给你m
  • 打开m个文件进行编写
  • i个文件
  • 中写入该行的i
  • 阅读另一行

一个实现示例是:

import csv
with open('input.csv', 'r') as f:
    csvreader = csv.reader(f)
    files = [open("output" + str(i), 'w') for i in range(len(csvreader.next()))]
    f.seek(0)
    for line in csvreader:
        for i, value in enumerate(line):
            files[i].write(value)
            files[i].write(' ')