Formula efficienteHey,
Ho una tabella di big data (~ 30 milioni di righe * 20 colonne) e questo test Pass / Fail rende JMP bloccato.
Il PC è Windows 10 a 64 bit, i7-4770 a 3,4 Ghz, SSD e DDR3 da 32 GB a 1600 Mhz.
Il JSL è:
cctable << New Column( "New status", Character, Nominal, Formula( If( :result < :L | :result > :H, "Fail", "Pass" ) ) );
Può essere più efficiente? C'è una scelta migliore in JMP per farlo?
Grazie,
Lo voglio
Ri: formula efficienteGrazie!
Io lo farò.
Anche se ciò che ha aiutato di più è stato un tavolo di 1M * 100 anziché 80M * 5
Ri: formula efficiente
Il mio test richiede 15 secondi per creare la tabella e 15 secondi per aggiungere la colonna extra. Sto usando << runFormulas per fare in modo che la formula valuti immediatamente piuttosto che aspettare il tempo di inattività.
start = Tick Seconds();
dt = New Table( "Untitled",
Add Rows( 30e6 ),
New Column( "L", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) ),
New Column( "result", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) ),
New Column( "H", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Integer( 1, 9 ) ) )
);
dt<<RUNFORMULAS> :H, "Fail", "Pass" ) ) );
dt << runformulas;
stop = Tick Seconds();
Show( "add", stop - start, N Rows( dt ) );</RUNFORMULAS>
"creare";
stop - start = 12,8833333333605;
N righe (dt) = 30000000;
"Inserisci";
stop - start = 12.6833333332906;
N righe (dt) = 30000000;
Formula aggiunta
Ri: formula efficienteGrazie, ma la "Nuova colonna (... ) "Il comando richiede tempo e anche tutto si blocca.
Proverò a usare update / join
Se tu (o chiunque altro
) hai un'altra idea, sarò felice di ascoltarla.
Grazie.
Ri: formula efficienteCiao,
Non utilizzare formule di colonna con una tabella di questo tipo.
Prova a eseguire un calcolo con JSL e incolla i risultati.
Si prega di vedere allegata una tabella e uno script che ho usato.
Saluti,
Tom.