[PYTHON] Es kann ein Problem sein, Japanisch für Ordnernamen und Notizbuchnamen in Databricks zu verwenden

Fazit zuerst

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

Was meinst du

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.

In 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

Überprüfung

Beschreibung jedes Notebooks

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/[email protected]/Mein Notizbuch

#/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/[email protected]/MyNotebook Caller

#/Users/xxx@yyy.jp/Gleich wie MyNotebookCaller

/Users/[email protected]/Test/MyNotebook

#/Users/xxx@yyy.jp/Gleich wie Mein Notizbuch

/Users/[email protected]/Test/MyNotebookCaller

#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"
  }
)

Überprüfung ① Wenn "Japanisch" für den Namen des aufrufenden Notizbuchs verwendet wird

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

Überprüfung (2) Wenn "Japanisch" für den Namen des Speicherordners des aufrufenden Notebooks verwendet wird

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

Überprüfung ③ Wenn für den Namen des angerufenen Notizbuchs "Japanisch" verwendet wird

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

Überprüfung ④ Wenn "Japanisch" für den Namen des Speicherordners des angerufenen Notebooks verwendet wird

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

Zusammenfassung

Seien Sie vorsichtig, wenn Sie Japanisch für Ordnernamen und Notizbuchnamen verwenden

Recommended Posts

Es kann ein Problem sein, Japanisch für Ordnernamen und Notizbuchnamen in Databricks zu verwenden
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
Ich dachte, es wäre langsam, die for-Anweisung in NumPy zu verwenden, aber das war nicht der Fall.
Praktisch, um Matplotlib-Unterzeichnungen in for-Anweisungen zu verwenden
Wie man Decorator in Django benutzt und wie man es macht
Ist es ein Problem, den Bedarf an analogen Humanressourcen in der KI-Ära zu beseitigen?
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Wie man eine schreckliche Bibliothek austrickst und benutzt, die global in einer Flasche aufbewahrt werden soll
Wenn Sie einen go table-gesteuerten Test in Python schreiben, ist es möglicherweise besser, subTest zu verwenden
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Stellen Sie von Python aus eine Verbindung zu postgreSQL her und verwenden Sie gespeicherte Prozeduren in einer Schleife.
So machen Sie den Containernamen in Docker als Subdomain zugänglich
[Python] Es war sehr praktisch, die Python-Klasse für das ROS-Programm zu verwenden.
Verwendung ist und == in Python
Tipps für diejenigen, die verwirrt sind, wie man is und == in Python verwendet
Flutter in Docker - Erstellen und Verwenden einer Flutter-Entwicklungsumgebung in einem Docker-Container
So lesen Sie Seriennummerndateien in einer Schleife, verarbeiten sie und zeichnen sie grafisch auf
Erstellen Sie eine PYNQ-Umgebung auf Ultra96 V2 und melden Sie sich bei Jupyter Notebook an
Eine Sammlung von Ressourcen, die zum Erstellen und Erweitern von Punktedateien hilfreich sein können
Bis Sie tägliche Daten für mehrere Jahre japanischer Bestände erhalten und diese in einer einzigen CSV (Python) speichern
Berechnen wir das statistische Problem mit Python
Machen Sie einen Chat-Bot und üben Sie, beliebt zu sein.
Python-Skript, das das Azure-Status-RSS crawlt und an Hipchat sendet
GradCAM mit 22 Codezeilen. tf_explain ist möglicherweise einfach zu bedienen, ich empfehle es!
Es wäre klug, wenn Sie etwas wie Boolesches und "A" oder "B" schreiben könnten [Python] [Aber]
Verwenden Sie ipywidgets in jupyter notebook, um Parameter interaktiv zu bearbeiten und anschließend die Bildverarbeitung zu versuchen
So überprüfen Sie, ob es sich um einen Wörterbuch-Typ (Wörterbuch, Hash) handelt, indem Sie einen oder alle verwenden
Verwenden Sie Slackbot als Relais und kehren Sie im JSON-Format von Flasche zu Slack zurück.
Verwendung von Docker zum Containerisieren Ihrer Anwendung und Verwenden von Docker Compose zum Ausführen Ihrer Anwendung in einer Entwicklungsumgebung
Eine Lösung für das Problem, dass Dateien mit [und] nicht in glob.glob () aufgeführt sind