Apri parte di CSV con filtroCiao,
Qual è il modo per aprire una parte filtrata di CSV?
Ho 300 Mb CSV ma ho bisogno solo di 10 Mb da esso.
Fornisci un esempio per Big Class.csv dove altezza > 50 e Età = 15;
Grazie.
Re: Aprire parte di CSV con filtroGrazie mille!!!!Re: Aprire parte di CSV con filtroPuoi farlo con un driver ODBC. È complicato e non sono sicuro del tipo di prestazioni che puoi aspettarti. Prima il JSL, poi i complicati passaggi di configurazione. Ho creato big class.csv nella directory samples\import; il bigclass.txt non ha funzionato al mio primo tentativo, probabilmente a causa dell'estensione o della mancanza di virgole. Potrebbe esserci un modo per risolverlo nella stringa di connessione.
New SQL Query(
Connection(
"ODBC:DSN=CSV;DBQ=C:\SPACE\SAS\JMP\15\SAMPLES\IMPORT DATA;DefaultDir=C:\SPACE\SAS\JMP\15\SAMPLES\IMPORT DATA;DriverId=27;FIL=text;MaxBufferSize=2048;PageTimeout=5;"
),
QueryName( "Big Class.csv" ),
Select(
Column( "name", "t1" ),
Column( "age", "t1" ),
Column( "sex", "t1" ),
Column( "height", "t1" ),
Column( "weight", "t1" )
),
From( Table( "Big Class.csv", Alias( "t1" ) ) ),
Where(
Custom( "t1.age=15 and t1.height>50", UI( Custom( Base( "Continuous" ) ) ) )
)
) << Run
Dovrai impostare un DSN sul tuo computer. Probabilmente non hai il driver. Scarica e installa.


Li ho trovati cercando il driver CSV ODBC di Microsoft Access
Installa l'exe a 64 bit:
This took a minuteThis took a minuteCi è voluto un minuto
Configurarlo. Digita ODBC nel menu di avvio di Windows per trovare lo strumento di amministrazione a 64 bit.




Usalo in JMP. Mi sono imbattuto, alcune delle immagini potrebbero essere meno corrette; le cose belle sono alla fine. File->Database è il punto di partenza.








Penso che il file abbia bisogno di un'estensione CSV, ma non ho fatto abbastanza esperimenti. Con un'estensione CSV e usando le virgole e NON usando le virgolette intorno ai numeri, funziona. Sembra che le virgolette importino le stringhe, ma potrebbe esserci un modo per risolvere anche questo.
Re: Aprire parte di CSV con filtroNon sono a conoscenza di alcun modo per passare alle Opzioni di input di Excel una clausola Where.Di seguito è riportato uno script che lo fa in modo efficace, ma prima deve leggere l'intera tabella di dati
dt = Open(
<"Path to your.csv">,
columns(
New Column( "name", Character, "Nominal" ),
New Column( "age", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "sex", Character, "Nominal" ),
New Column( "height", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "weight", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )),
invisible
);
dt << select where(:height > 50 & :age == 15 );
dt2 = dt << subset( selected rows(1), selected columns(0) );
close(dt, nosave);