Si vous utilisez ** japonais pour le nom du dossier ou le nom du bloc-notes **, utilisez dbutils.notebook.run pour en utiliser un autre Il y a des cas où une erreur se produit lors de l'appel d'un notebook
J'ai un ordinateur portable avec la structure de dossiers suivante
/Users/xxx@yyy.jp
|-MyNotebook
|-Mon cahier
|-MyNotebookCaller
|-Appelant MyNotebook
|-tester
|-MyNotebook
|-MyNotebookCaller
Parmi ceux-ci, dans les cas suivants, l'appel d'un autre Notebook à l'aide de dbutils.notebook.run a échoué.
MyNotebook Caller
test
/MyNotebookCallerDans les cas suivants, l'appel a réussi sans problème.
--Lorsque «japonais est utilisé» pour le nom du cahier appelé
-/Users/[email protected]/Mon notebook
--Lorsque «japonais est utilisé» pour le nom du dossier de stockage du notebook appelé
-/Users/[email protected]/test
/MyNotebook
C'est un processus simple d'appel en passant des paramètres de MyNotebookCaller
ou MyNotebook Caller
à MyNotebook
, et en imprimant
les paramètres reçus dans MyNotebook
.
/Users/xxx@yyy.jp/MyNotebook
dbutils.widgets.text("param1", "111")
dbutils.widgets.text("param2", "222")
print("param1:{},param2:{}".format(dbutils.widgets.get("param1"), dbutils.widgets.get("param2")))
#/Users/xxx@yyy.jp/Identique à mon carnet
/Users/xxx@yyy.jp/MyNotebookCaller
#Cmd1 Appelez MyNotebook dans le même dossier
dbutils.notebook.run(
"./MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
#Cmd2 Call My Notebook dans le même dossier
dbutils.notebook.run(
"./Mon cahier",
60,
{
"param1": "val1",
"param2": "val2"
}
)
#Appeler mon notebook dans le dossier de test Cmd3
dbutils.notebook.run(
"./tester/MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
#/Users/xxx@yyy.jp/Identique à MyNotebookCaller
#/Users/xxx@yyy.jp/Identique à mon carnet
#Cmd1 Appelez MyNotebook dans le même dossier
dbutils.notebook.run(
"./MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
#Cmd2 Appelez MyNotebook dans le dossier un niveau supérieur
dbutils.notebook.run(
"../MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Essayez d'appeler MyNotebook dans le même dossier depuis /Users/[email protected]/MyNotebook Caller
Cmd1 Appelez MyNotebook dans le même dossier
dbutils.notebook.run(
"./MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
En conséquence, j'ai obtenu une WorkflowException
.
Il semble qu'une erreur ait été renvoyée en utilisant le japonais, qui est un caractère autre que des caractères latins (jeu de caractères ASCII).
com.databricks.WorkflowException: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_PARAMETER_VALUE: Only Latin1 (ASCII) characters are currently supported. Any international characters must be removed or replaced in workflow_context
Même si j'appelle MyNotebook dans le dossier de test,
Cmd2 Appelez MyNotebook dans le dossier de test
dbutils.notebook.run(
"./tester/MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Cela a également provoqué une exception WorkflowException
com.databricks.WorkflowException: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_PARAMETER_VALUE: Only Latin1 (ASCII) characters are currently supported. Any international characters must be removed or replaced in workflow_context
Essayez d'appeler MyNotebook dans le même dossier depuis /Users/[email protected]/test
/MyNotebookCaller
Cmd1 Appelez MyNotebook dans le même dossier
dbutils.notebook.run(
"./MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Cela a également abouti à une exception WorkflowException
com.databricks.WorkflowException: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_PARAMETER_VALUE: Only Latin1 (ASCII) characters are currently supported. Any international characters must be removed or replaced in workflow_context
japonais est utilisé
pour le nom du carnet appeléEssayez d'appeler / Users / xxx @ yyy.jp / MyNotebook
depuis /Users/[email protected]/MyNotebookCaller
Cmd2 Call My Notebook dans le même dossier
dbutils.notebook.run(
"./Mon cahier",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Le processus s'est terminé normalement même si le japonais a été utilisé pour le nom du cahier de l'appelé. Il semble que les paramètres passés sont également affichés correctement.
param1:val1,param2:val2
japonais est utilisé
pour le nom du dossier de stockage du notebook appeléEssayez d'appeler /Users/[email protected]/test
/MyNotebook depuis /Users/[email protected]/MyNotebookCaller
Appeler mon notebook dans le dossier de test Cmd3
dbutils.notebook.run(
"./tester/MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Le processus s'est terminé normalement même si le japonais était utilisé pour le nom de dossier du bloc-notes appelé. Il semble que les paramètres passés sont également affichés correctement.
param1:val1,param2:val2
Soyez prudent lorsque vous utilisez le japonais pour les noms de dossier et les noms de bloc-notes
Recommended Posts