Wenn Sie ** Japanisch für den Ordnernamen oder den Notizbuchnamen ** verwenden, verwenden Sie dbutils.notebook.run, um einen anderen zu verwenden Es gibt Fälle, in denen beim Aufrufen eines Notebooks ein Fehler auftritt
Ich habe ein Notizbuch mit der folgenden Ordnerstruktur
/Users/xxx@yyy.jp
|-MyNotebook
|-Mein Notebook
|-MyNotebookCaller
|-MyNotebook Anrufer
|-Prüfung
|-MyNotebook
|-MyNotebookCaller
In den folgenden Fällen schlug das Aufrufen eines anderen Notizbuchs mit dbutils.notebook.run fehl.
MyNotebook Caller
test
/MyNotebookCallerIn den folgenden Fällen war der Anruf problemlos erfolgreich.
--Wenn "Japanisch" für den Namen des angerufenen Notizbuchs verwendet wird
-/Users/[email protected]/My Notebook
--Wenn "Japanisch" für den Namen des Speicherordners des genannten Notebooks verwendet wird
-/Users/[email protected]/test
/MyNotebook
Es ist ein einfacher Vorgang zum Aufrufen, indem Parameter von "MyNotebookCaller" oder "MyNotebook Caller" an "MyNotebook" übergeben und die empfangenen Parameter in "MyNotebook" gedruckt werden.
/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/Gleich wie Mein Notizbuch
/Users/xxx@yyy.jp/MyNotebookCaller
#Cmd1 Rufen Sie MyNotebook im selben Ordner auf
dbutils.notebook.run(
"./MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
#Cmd2 Call My Notebook im selben Ordner
dbutils.notebook.run(
"./Mein Notebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
#Rufen Sie My Notebook im Cmd3-Testordner auf
dbutils.notebook.run(
"./Prüfung/MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
#/Users/xxx@yyy.jp/Gleich wie MyNotebookCaller
#/Users/xxx@yyy.jp/Gleich wie Mein Notizbuch
#Cmd1 Rufen Sie MyNotebook im selben Ordner auf
dbutils.notebook.run(
"./MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
#Cmd2 Rufen Sie MyNotebook im Ordner eine Ebene höher auf
dbutils.notebook.run(
"../MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Versuchen Sie, MyNotebook im selben Ordner von /Users/[email protected]/MyNotebook Caller
aufzurufen
Cmd1 Rufen Sie MyNotebook im selben Ordner auf
dbutils.notebook.run(
"./MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Als Ergebnis habe ich eine "WorkflowException" erhalten. Es scheint, dass ein Fehler durch die Verwendung von Japanisch zurückgegeben wurde, bei dem es sich um ein anderes Zeichen als lateinische Zeichen handelt (ASCII-Zeichensatz).
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
Auch wenn ich MyNotebook im Testordner aufrufe,
Cmd2 Rufen Sie MyNotebook im Testordner auf
dbutils.notebook.run(
"./Prüfung/MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Dies verursachte auch eine "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
Versuchen Sie, MyNotebook im selben Ordner unter /Users/[email protected]/test
/MyNotebookCaller aufzurufen
Cmd1 Rufen Sie MyNotebook im selben Ordner auf
dbutils.notebook.run(
"./MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Dies führte auch zu einer "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
Rufen Sie / Users / xxx @ yyy.jp / MyNotebook
von /Users/[email protected]/MyNotebookCaller aus auf
Cmd2 Call My Notebook im selben Ordner
dbutils.notebook.run(
"./Mein Notebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Der Prozess endete normal, obwohl Japanisch für den Notizbuchnamen des Angerufenen verwendet wurde. Es scheint, dass die übergebenen Parameter auch richtig ausgegeben werden.
param1:val1,param2:val2
Rufen Sie /Users/[email protected]/test
/MyNotebook unter /Users/[email protected]/MyNotebookCaller an
Rufen Sie My Notebook im Cmd3-Testordner auf
dbutils.notebook.run(
"./Prüfung/MyNotebook",
60,
{
"param1": "val1",
"param2": "val2"
}
)
Der Vorgang wurde normal beendet, obwohl Japanisch für den Ordnernamen des aufgerufenen Notizbuchs verwendet wurde. Es scheint, dass die übergebenen Parameter auch richtig ausgegeben werden.
param1:val1,param2:val2
Seien Sie vorsichtig, wenn Sie Japanisch für Ordnernamen und Notizbuchnamen verwenden
Recommended Posts