2017-11-28 4 views
-5

csvファイルをパーケットフォーマットに変換する必要があります。しかし、このcsvファイルは非常に巨大です(65,000行と1,000列以上)。そのため、私の寄木細工のファイルをいくつかのサブファイルに分割する必要があります(それぞれ5 000行と200列)。私はすでにpartition_onとrow_group_offsetsを試しましたが、うまくいきません。ファーストパーケットを使用してサブファイル上のパーケットファイルを分割する

マイコード:

import pandas as pd 
import fastparquet as fp 

df = pd.read_csv('D:\Users\mim\Desktop\SI\LOG\LOG.csv') 
fp.write(r'D:\Users\mim\Desktop\SI\newdata.parq', df) 

答えて

0

[正解]:

import os 
import pandas as pd 
import fastparquet as fp 

pathglobalcsv = 'D:\Users\mim\Desktop\SI' 
inputFile = os.path.join(pathglobalcsv, 'LOG.csv') 

table = pd.read_csv(inputFile, delimiter=';', chunksize=5000) 
listrow = list(table) 
columnCount = len(listrow[0]) 

fileCounter = 0 

for row in listrow: 
    for col in range(1, columnCount, 199): 
     timestamp = row.ix[:, 0] #timestamp 
     timestampcolumn = pd.DataFrame(timestamp) 
     i=col+199 
     maincols = row.ix[:, col:i] #other columns 
     maincolumns = pd.DataFrame(maincols) 
     outputDF = pd.concat([timestampcolumn, maincolumns], axis=1) 

     #create a new file 
     fileCounter += 1 

     #parquet file 
     fp.write(r'C:\Users\mim\eclipse-workspace\SI\file.part_' + str(fileCounter) + '.par', outputDF) 
関連する問題