Ho uno script Python che importa un file CSV di grandi dimensioni e quindi conta il numero di occorrenze di ogni parola nel file, quindi esporta i conteggi in un altro file CSV.Cosa significa "ucciso"?
Ma quello che sta succedendo è che una volta che il conteggio parte è finito e l'esportazione inizia dice Killed
nel terminale.
Non penso che questo sia un problema di memoria (se fosse stato presumo che avrei ricevuto un errore di memoria e non Killed
).
Potrebbe essere che il processo richieda troppo tempo? Se è così, c'è un modo per estendere il periodo di time-out in modo da poterlo evitare?
Ecco il codice:
csv.field_size_limit(sys.maxsize)
counter={}
with open("/home/alex/Documents/version2/cooccur_list.csv",'rb') as file_name:
reader=csv.reader(file_name)
for row in reader:
if len(row)>1:
pair=row[0]+' '+row[1]
if pair in counter:
counter[pair]+=1
else:
counter[pair]=1
print 'finished counting'
writer = csv.writer(open('/home/alex/Documents/version2/dict.csv', 'wb'))
for key, value in counter.items():
writer.writerow([key, value])
E il Killed
accade dopo finished counting
ha stampato, e il messaggio completo è:
killed (program exited with code: 137)
Messaggio il testo esatto del messaggio di errore che si stanno ottenendo. –
"ucciso" generalmente indica che il processo ha ricevuto un segnale che ha causato l'uscita. In questo caso dal momento che sta accadendo allo stesso tempo dello script, c'è una buona possibilità che si tratti di una pipe rotta, il processo sta cercando di leggere o scrivere su un handle di file che è stato chiuso all'altro capo. –
Non è una risposta su dove viene il messaggio 'killed', ma se è dovuto andare oltre un qualche tipo di limite di memoria di sistema, potresti essere in grado di risolverlo usando' counter.iteritems() 'invece di' counter .items() 'nel tuo ciclo finale. In Python 2, 'items' restituisce un elenco di chiavi e valori nel dizionario, che potrebbe richiedere molta memoria se è molto grande. Al contrario, 'iteritems' è un generatore che richiede solo una piccola quantità di memoria in un dato momento. – Blckknght