Abrir parte de CSV con filtroHola,
¿Cuál es la forma de abrir una parte filtrada de CSV?
Tengo 300 Mb CSV pero solo necesito 10 Mb.
Proporcione un ejemplo para Big Class.csv donde altura > 50 y Edad = 15;
Gracias.
Re: Abrir parte de CSV con filtro¡¡¡¡Muchísimas gracias!!!!Re: Abrir parte de CSV con filtroPuede hacerlo con un controlador ODBC. Es complicado, y no estoy seguro de qué tipo de rendimiento puede esperar. Primero el JSL, luego los complicados pasos de configuración. Hice big class.csv en el directorio samples\import; bigclass.txt no funcionó en mi primer intento, probablemente debido a la extensión o a que no tenía comas. Puede haber una manera de arreglar eso en la cadena de conexión.
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
Tendrá que configurar un DSN en su computadora. Probablemente no tengas el controlador. Descargar e instalar.


Los encontré buscando el controlador ODBC CSV de Microsoft Access
Instale el exe de 64 bits:
This took a minuteThis took a minuteEsto tomó un minuto
Prepararlo. Escriba ODBC en el menú de inicio de Windows para encontrar la herramienta de administración de 64 bits.




Úselo en JMP. Me tropecé, algunas de las imágenes pueden ser menos correctas; lo bueno está al final. Archivo->Base de datos es el punto de partida.








Creo que el archivo necesita una extensión CSV, pero no hice suficientes experimentos. Con una extensión CSV, y usando comas, y NO usando comillas alrededor de los números, funciona. Parece que las comillas importarán cadenas, pero también podría haber una forma de solucionarlo.
Re: Abrir parte de CSV con filtroNo conozco ninguna forma de pasar a las Opciones de entrada de Excel una cláusula Where.A continuación se muestra un script que efectivamente hace eso, pero primero tiene que leer toda la tabla de datos.
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);