API Java pour créer des fichiers JMP ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Existe-t-il un moyen de créer des fichiers JMP en Java plutôt que de créer un fichier CSV, puis d'obliger les utilisateurs à effectuer eux-mêmes la conversion à l'aide d'un script JSL ?
Re : API Java pour créer des fichiers JMP ?Vous pouvez également essayer ce script qui Craige@JMP gracieusement fourni.
Il illustre comment répertorier explicitement le schéma de table lors de la lecture d'un fichier CSV, réduisant de moitié le temps de chargement - à peu près les mêmes gains que l'approche de chargement SQLite.
Re : API Java pour créer des fichiers JMP ?Merci pour la suggestion. Je vais vérifier cette approche.
Salutations,
Barry Wadsworth
Apple Inc., Présentation et accès aux opérations MQM
(m) 916-208-9394
bwadsworth@apple.com
Re : API Java pour créer des fichiers JMP ?Salut bwadsworth ,
Vous pouvez utiliser un format de données binaires que Java et JMP peuvent gérer - par exemple, une table SQLite.
j'ai fait une expérience sous Windows, en utilisant JMP13 et un Fichier CSV de 160 Mo ( POD - Données ouvertes sur les produits - gs1_gcp.csv) avec un mélange de chaînes et de flottants.
JMP peut analyser et charger ce fichier CSV en 37 secondes.
Mais il n'a fallu que 20 secondes pour charger une base de données SQLite équivalente à l'aide du générateur de requêtes de JMP et du pilote ODBC SQLite, soit 54 % du temps initial.
Bien entendu, ces gains ne sont rien comparés au temps de chargement direct d'une table JMP - dans ce cas, 4 secondes seulement !
Mais si vous souhaitez sortir les données de Java directement dans un format qui ne nécessite pas de conversion manuelle, cela peut être une bonne approche.
Re : API Java pour créer des fichiers JMP ?Essayez ceci pour voir comment cela évoluera pour vous.Ce JSL créera un tableau de données aléatoires, des nombres, des chaînes.Vous devriez probablement le faire deux fois plus gros que prévu pour vos données...Le script crée ensuite le script Jeff décrit ci-dessus et réimporte la table.Deux temps sont présentés ; le premier est l'heure de création et le second est l'heure de réimportation.Ci-dessous, vous pouvez voir 1 000 000 lignes de 30 variables constituant une chaîne de texte de 370 Mo qui se réimporte en 45 secondes.A la fin, la plateforme de comparaison de tables vérifie le résultat.Pour des problèmes de cette taille, vous aurez très probablement besoin d'un JMP 64 bits ; une chaîne de 370 Mo va repousser les limites d'un JMP 32 bits sous Windows.
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 );
arrêter - démarrer = 12.0166666666046 ;
Longueur (texte) = 369241917 ;
arrêter - démarrer = 45.1166666664649 ;
Comparer les tableaux de données[]

Re : API Java pour créer des fichiers JMP ?Salut Jef,
Merci d'avoir proposé cette solution. Ainsi, le script serait un modèle et nous ajouterions dynamiquement les colonnes nécessaires ? Nos fichiers de données peuvent être très volumineux. Nous pouvons avoir un grand nombre de colonnes et de lignes.Quelles sont les limites de la méthode Set Values() ?
Nouvelle colonne(
["en" => "name", "ja" => "??", "x-id" => "S_name_Col", "zh-CN" => "??"],
Personnage,
"Nominal",
Définir la propriété(
"Remarques",
["fr" => "...généralement utilisé comme variable d'étiquette dans les tracés",
"ja" => "?????????????????",
"x-id" => "S_usual_used_as_a_label_variable_Not",
"zh-CN" => "...???????????"]
),
Définir les valeurs(
{« 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"}
)
),
Re : API Java pour créer des fichiers JMP ?Il n'y a pas d'API Java mais le JSL Nouveau tableau() est le meilleur moyen de créer un fichier qui sera une table de données JMP lorsqu'il sera ouvert.
Vous pouvez mettre un //! sur la première ligne de votre script et il sera exécuter automatiquement lorsque le fichier est ouvert. De cette façon, il « ressemblera » à un tableau de données JMP lorsqu'il sera ouvert.
Vous pouvez obtenir un modèle pour le Nouveau tableau() syntaxe pour créer une table de données en examinant le script de table pour une table de données existante. Vous trouverez le script de table dans le menu hotspot en haut à gauche de la table de données.

Ci-joint un exemple de fichier JSL pour le montrer. Lorsque vous ouvrez le fichier, il s'exécute automatiquement et crée une table de données.
-Jeff