Java-API zum Erstellen von JMP-Dateien?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Gibt es eine Möglichkeit, JMP-Dateien in Java zu erstellen, anstatt CSV-Dateien zu erstellen und die Benutzer dann die Konvertierung mithilfe eines JSL-Skripts selbst durchführen zu lassen?
Betreff: Java-API zum Erstellen von JMP-Dateien?Vielleicht möchten Sie auch dieses Skript ausprobieren Craige@JMP gnädig zur Verfügung gestellt.
Es veranschaulicht, wie das Tabellenschema beim Lesen einer CSV-Datei explizit aufgelistet wird, wodurch die Ladezeit halbiert wird – ungefähr die gleichen Vorteile wie beim Laden von SQLite.
Betreff: Java-API zum Erstellen von JMP-Dateien?Danke für den Vorschlag. Diesen Ansatz werde ich prüfen.
Grüße,
Barry Wadsworth
Apple Inc., Präsentation und Zugriff auf MQM Ops
(m) 916-208-9394
bwadsworth@apple.com
Betreff: Java-API zum Erstellen von JMP-Dateien?Hallo bwadsworth ,
Sie könnten ein binäres Datenformat verwenden, das sowohl Java als auch JMP verarbeiten können, beispielsweise eine SQLite-Tabelle.
Ich habe ein Experiment gemacht unter Windows mit JMP13 und a 160 MB CSV-Datei ( POD - Offene Produktdaten - gs1_gcp.csv) mit einer Mischung aus Strings und Floats.
JMP kann diese CSV-Datei in 37 Sekunden parsen und laden.
Aber es dauerte nur 20 Sekunden, um eine gleichwertige SQLite-Datenbank mit dem Query Builder von JMP und dem SQLite-ODBC-Treiber zu laden – oder 54 % der ursprünglichen Zeit.
Natürlich sind diese Gewinne nichts im Vergleich zu der Zeit, eine JMP-Tabelle direkt zu laden – in diesem Fall nur 4 Sekunden!
Wenn Sie die Daten von Java jedoch direkt in ein Format ausgeben möchten, das keine manuelle Konvertierung erfordert, ist dies möglicherweise ein guter Ansatz.
Betreff: Java-API zum Erstellen von JMP-Dateien?Probieren Sie dies aus, um zu sehen, wie es für Sie skaliert.Diese JSL erstellt eine Tabelle mit zufälligen Daten, einigen Zahlen, einigen Zeichenfolgen.Sie sollten es wahrscheinlich doppelt so groß machen, wie Sie Ihre Daten erwarten ...Das Skript erstellt dann das oben beschriebene Skript Jeff und importiert die Tabelle erneut.Es werden zwei Zeiten präsentiert; Die erste ist die Erstellungszeit und die zweite die Zeit des erneuten Imports.Unten sehen Sie 1.000.000 Zeilen mit 30 Variablen, die eine 370 MB große Textzeichenfolge ergeben, die in 45 Sekunden erneut importiert wird.Am Ende überprüft die Vergleichstabellen-Plattform das Ergebnis.Für Probleme dieser Größe benötigen Sie höchstwahrscheinlich ein 64-Bit-JMP; Eine 370-MB-Zeichenfolge wird die Grenzen eines 32-Bit-JMP unter Windows sprengen.
start = Tick Seconds();dt = New Table( "original", Add Rows( 1000000 ), );For( i = 1, i <= 30, i++, If( Random Integer( 1, 2 ) == 1, x = dt << New Column( "c", Character, Formula( Substr( "abcdefghijklmnopqrstuvwxyz", Random Integer( 1, 20 ), Random Integer( 1, 20 ) ) ) ), x = dt << New Column( "c", Numeric, Formula( Random Integer( 1, 999999999 ) ) ) ); dt << runformulas; x << deleteformula;);stop = Tick Seconds();Show( stop - start );Wait( 1 );text = Char( dt << getscript );Show( Length( text ) );Wait( 1 );start = Tick Seconds();dt2 = Eval( Parse( text ) );stop = Tick Seconds();Show( stop - start );dt << Compare Data Tables( Compare with( dt2 ), Compare Data );
Stopp - Start = 12.0166666666046;
Länge (Text) = 369241917;
Stopp - Start = 45.1166666664649;
Datentabellen vergleichen[]

Betreff: Java-API zum Erstellen von JMP-Dateien?Hallo Jeff,
Vielen Dank für das Angebot dieser Lösung. Das Skript wäre also eine Vorlage und wir würden die benötigten Spalten dynamisch hinzufügen? Unsere Datendateien können sehr groß sein. Wir können eine große Anzahl von Spalten und Zeilen haben.Was sind die Grenzen der Methode Set Values()?
Neue Spalte (
["en" => "name", "ja" => "??", "x-id" => "S_name_Col", "zh-CN" => "??"],
Charakter,
"Nominal",
Eigenschaft festlegen (
"Anmerkungen",
["de" => "...normalerweise als Beschriftungsvariable in Diagrammen verwendet",
"ja" => "???????????????????",
"x-id" => "S_usually_used_as_a_label_variable_Not",
"zh-CN" => "...????????????"]
),
Werte setzen (
{"KATIE", "LOUISE", "JANE", "JACLYN", "LILLIE", "TIM", "JAMES", "ROBERT",
"BARBARA", "ALICE", "SUSAN", "JOHN", "JOE", "MICHAEL", "DAVID", "JUDY",
"ELIZABETH", "LESLIE", "CAROL", "PATTY", "FREDERICK", "ALFRED", "HENRY",
„LEWIS“, „EDWARD“, „CHRIS“, „JEFFREY“, „MARY“, „AMY“, „ROBERT“,
"WILLIAM", "CLAY", "MARK", "DANNY", "MARTHA", "MARION", "PHILLIP",
"LINDA", "KIRK", "LAWRENCE"}
)
),
Betreff: Java-API zum Erstellen von JMP-Dateien?Es gibt keine Java-API außer der JSL Neue Tabelle() Syntax ist der beste Weg, um eine Datei zu erstellen, die beim Öffnen eine JMP-Datentabelle ist.
Sie können ein // setzen! in der ersten Zeile Ihres Skripts und es wird automatisch laufen wenn die Datei geöffnet wird. Auf diese Weise sieht es beim Öffnen wie eine JMP-Datentabelle aus.
Sie können eine Vorlage für die erhalten Neue Tabelle() Syntax, um eine Datentabelle zu erstellen, indem das Tabellenskript auf eine vorhandene Datentabelle untersucht wird. Sie finden das Tabellenskript im Hotspot-Menü oben links in der Datentabelle.

Anbei ist eine Beispiel-JSL-Datei, um dies zu zeigen. Wenn Sie die Datei öffnen, wird sie automatisch ausgeführt und eine Datentabelle erstellt.
-Jeff