فايل ستور

FileStore هو مجلد خاص داخل نظام ملفات Databricks (DBFS) حيث يمكنك حفظ الملفات وجعلها في متناول متصفح الويب الخاص بك. يمكنك استخدام FileStore من أجل:

  • احفظ الملفات، مثل الصور والمكتبات، التي يمكن الوصول إليها داخل HTML وجافا سكريبت عند الاتصال displayHTML.
  • احفظ ملفات الإخراج التي تريد تنزيلها على سطح المكتب المحلي.
  • Upload ملفات CSV وملفات البيانات الأخرى من سطح المكتب المحلي لمعالجتها على Databricks.

عند استخدام ميزات معينة، يضع Azure Databricks الملفات في المجلدات التالية ضمن FileStore:

  • /FileStore/jars - يحتوي على المكتبات التي تقوم /FileStore/jars. إذا قمت بحذف الملفات الموجودة في هذا المجلد، فقد لا تعمل المكتبات التي تشير إلى هذه الملفات في مساحة العمل الخاصة بك.
  • /FileStore/tables - يحتوي على الملفات التي تقوم باستيرادها باستخدام /FileStore/tables. إذا قمت بحذف الملفات الموجودة في هذا المجلد، فقد لا يمكن الوصول إلى الجداول التي قمت بإنشائها من هذه الملفات.
  • /FileStore/plots - يحتوي على صور تم إنشاؤها في دفاتر الملاحظات عند استدعاء display() كائن مؤامرة Python أو R ، مثل a ggplot أو matplotlib plot. إذا قمت بحذف الملفات الموجودة في هذا المجلد، فقد تضطر إلى إعادة إنشاء هذه المخططات في دفاتر الملاحظات التي تشير إليها. راجع Matplotlib و ggplot2 لمزيد من المعلومات.
  • /FileStore/import-stage - يحتوي على ملفات مؤقتة تم إنشاؤها عند استيراد /FileStore/import-stage أو ملفات أرشيف Databricks . تختفي هذه الملفات المؤقتة بعد اكتمال استيراد دفتر الملاحظات.

حفظ ملف إلى FileStore

لحفظ ملف إلى FileStore ، ضعه في /FileStore الدليل في DBFS:

dbutils.fs.put("/FileStore/my-stuff/my-file.txt", "Contents of my file")

في ما يلي، استبدل <databricks-instance><databricks-instance> لنشر Azure Databricks.

يمكن الوصول إلى الملفات المخزنة في /FileStore متصفح الويب الخاص بك على https://<databricks-instance>/files/<path-to-file>?o=######. على سبيل المثال، يمكن الوصول إلى الملف الذي قمت بتخزينه في /FileStore/my-stuff/my-file.txt المكان الذي يكون https://<databricks-instance>/files/my-stuff/my-file.txt?o=###### فيه الرقم بعد o= هو نفسه الموجود في عنوان URL.

ملاحظة

يمكنك أيضا استخدام واجهات تحميل ملفات DBFS لوضع الملفات في /FileStore الدليل. انظر Databricks CLI.

تضمين صور ثابتة في دفاتر الملاحظات

يمكنك استخدام files/ الموقع لتضمين صور ثابتة في دفاتر الملاحظات:

displayHTML("<img src ='files/image.jpg/'>")

أو بناء جملة استيراد صورة Markdown:

%md
![my_test_image](files/image.jpg)

يمكنك تحميل صور ثابتة باستخدام مرجع واجهة برمجة تطبيقات DBFS Databricks RESTوطلبات مكتبة Python HTTP. في المثال التالي، يرجى اتباع الخطوات التالية:

  • استبدل <databricks-instance> بعنوان <databricks-instance> لنشر Azure Databricks.
  • استبدل <token> بقيمة <token> الخاص بك.
  • استبدل <image-dir> بالموقع FileStore الذي تريد تحميل ملفات الصور فيه.
import requests
import json
import os

TOKEN = '<token>'
headers = {'Authorization': 'Bearer %s' % TOKEN}
url = "https://<databricks-instance>/api/2.0"
dbfs_dir = "dbfs:/FileStore/<image-dir>/"

def perform_query(path, headers, data={}):
  session = requests.Session()
  resp = session.request('POST', url + path, data=json.dumps(data), verify=True, headers=headers)
  return resp.json()

def mkdirs(path, headers):
  _data = {}
  _data['path'] = path
  return perform_query('/dbfs/mkdirs', headers=headers, data=_data)

def create(path, overwrite, headers):
  _data = {}
  _data['path'] = path
  _data['overwrite'] = overwrite
  return perform_query('/dbfs/create', headers=headers, data=_data)

def add_block(handle, data, headers):
  _data = {}
  _data['handle'] = handle
  _data['data'] = data
  return perform_query('/dbfs/add-block', headers=headers, data=_data)

def close(handle, headers):
  _data = {}
  _data['handle'] = handle
  return perform_query('/dbfs/close', headers=headers, data=_data)

def put_file(src_path, dbfs_path, overwrite, headers):
  handle = create(dbfs_path, overwrite, headers=headers)['handle']
  print("Putting file: " + dbfs_path)
  with open(src_path, 'rb') as local_file:
    while True:
      contents = local_file.read(2**20)
      if len(contents) == 0:
        break
      add_block(handle, b64encode(contents).decode(), headers=headers)
    close(handle, headers=headers)

mkdirs(path=dbfs_dir, headers=headers)
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
  if ".png" in f:
    target_path = dbfs_dir + f
    resp = put_file(src_path=f, dbfs_path=target_path, overwrite=True, headers=headers)
    if resp == None:
      print("Success")
    else:
      print(resp)

قياس الصور الثابتة

لقياس حجم الصورة التي قمت بحفظها في DBFS، انسخ الصورة إلى /FileStore ثم قم بتغيير حجمها باستخدام معلمات الصورة في displayHTML:

dbutils.fs.cp('dbfs:/user/experimental/MyImage-1.png','dbfs:/FileStore/images/')
displayHTML('''<img src="files/images/MyImage-1.png" style="width:600px;height:600px;">''')

استخدام مكتبة جافا سكريبت

يوضح دفتر الملاحظات هذا كيفية استخدام FileStore لاحتواء مكتبة جافا سكريبت.

دفتر ملاحظات تجريبي من FileStore

الحصول على دفتر ملاحظات