Dosya deposu

Önemli

Bu belge kullanımdan kaldırılmıştır ve güncelleştirilmeyebilir. Bu içerikte belirtilen ürünler, hizmetler veya teknolojiler artık desteklenmemektedir.

FileStore, DBFS içinde dosyaları kaydedebileceğiniz ve bunları web tarayıcınız tarafından erişilebilir hale getirebileceğiniz özel bir klasördür. FileStore kullanarak:

  • çağırdığınızda displayHTMLHTML ve JavaScript içinde erişilebilen görüntüler ve kitaplıklar gibi dosyaları kaydedin.
  • İndirmek istediğiniz çıkış dosyalarını yerel masaüstünüzde kaydedin.
  • Databricks'te işlemek için yerel masaüstünüzden CSV'leri ve diğer veri dosyalarını karşıya yükleyin.

Belirli özellikleri kullandığınızda, Azure Databricks dosyaları FileStore altında aşağıdaki klasörlere yerleştirir:

  • /FileStore/jars - karşıya yüklenen eski çalışma alanı kitaplıklarını içerir. Bu klasördeki dosyaları silerseniz, çalışma alanınızdaki bu dosyalara başvuran kitaplıklar artık çalışmayabilir.
  • /FileStore/tables- kullanıcı arabirimini kullanarak içeri aktardığınız dosyaları içerir. Bu klasördeki dosyaları silerseniz, bu dosyalardan oluşturduğunuz tablolara artık erişilemeyebilir.

Önemli

Kitaplıklar Databricks Runtime 14.3 LTS ve altı kullanılırken DBFS'den yüklenebilir. Ancak, herhangi bir çalışma alanı kullanıcısı DBFS'de depolanan kitaplık dosyalarını değiştirebilir. Azure Databricks çalışma alanında kitaplıkların güvenliğini artırmak için, kitaplık dosyalarını DBFS kökünde depolamak, Databricks Runtime 15.1 ve üzerinde varsayılan olarak kullanım dışıdır ve devre dışıdır. Bkz . Kitaplıkları DBFS kökünde depolamak varsayılan olarak kullanım dışıdır ve devre dışıdır.

Databricks bunun yerine Python kitaplıkları , JAR dosyaları ve Spark bağlayıcıları dahil olmak üzere tüm kitaplıkların çalışma alanı dosyalarına veya Unity Kataloğu birimlerine yüklenmesini ya da kitaplık paketi depolarının kullanılmasını önerir. İş yükünüz bu desenleri desteklemiyorsa, bulut nesne depolama alanında depolanan kitaplıkları da kullanabilirsiniz.

Dosyayı FileStore'a kaydetme

DBFS dizinine rastgele metin dosyaları yazmak için /FileStore kullanabilirsinizdbutils.fs.put:

dbutils.fs.put("/FileStore/my-stuff/my-file.txt", "This is the actual text that will be saved to disk. Like a 'Hello world!' example")

Aşağıda değerini Azure Databricks dağıtımınızın çalışma alanı URL'si ile değiştirin<databricks-instance>.

içinde /FileStore depolanan dosyalara adresinden https://<databricks-instance>/files/<path-to-file>?o=######web tarayıcınızdan erişilebilir. Örneğin, içinde /FileStore/my-stuff/my-file.txt depoladığınız dosyaya, sonrasındaki numaranın o= URL'nizdekiyle aynı olduğu yerden erişilebilirhttps://<databricks-instance>/files/my-stuff/my-file.txt?o=######.

Not

Dosyaları dizine yerleştirmek /FileStore için DBFS dosya yükleme arabirimlerini de kullanabilirsiniz. Bkz . DBFS'de tabloları keşfetme ve oluşturma.

Not defterlerine statik görüntüler ekleme

Statik görüntüleri not defterlerinize eklemek için konumu kullanabilirsiniz files/ :

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

veya Markdown resmi içeri aktarma söz dizimi:

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

DBFS API'sini ve istekleri Python HTTP kitaplığını kullanarak statik görüntüleri karşıya yükleyebilirsiniz. Aşağıdaki örnekte:

  • değerini Azure Databricks dağıtımınızın çalışma alanı URL'si ile değiştirin<databricks-instance>.
  • değerini kişisel erişim belirtecinizin değeriyle değiştirin<token>.
  • yerine <image-dir> görüntü dosyalarını karşıya yüklemek istediğiniz konumu FileStore yazın.

Not

En iyi güvenlik uygulaması olarak otomatik araçlar, sistemler, betikler ve uygulamalarla kimlik doğrulaması yaptığınızda Databricks, çalışma alanı kullanıcıları yerine hizmet sorumlularına ait kişisel erişim belirteçlerini kullanmanızı önerir. Hizmet sorumlularına yönelik belirteçler oluşturmak için bkz . Hizmet sorumlusu için belirteçleri yönetme.

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)

Statik görüntüleri ölçeklendirme

DBFS'ye kaydettiğiniz görüntünün boyutunu ölçeklendirmek için, içindeki görüntü parametrelerini displayHTMLkullanarak görüntüyü konumuna /FileStore kopyalayın ve yeniden boyutlandırın:

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;">''')

Not defteri örneği: JavaScript kitaplığı kullanma

Bu not defteri, JavaScript kitaplığını içermek için FileStore'un nasıl kullanılacağını gösterir.

DBFS FileStore örnek not defteri

Not defterini alma