FileStore

FileStore, Databricks dosya sistemi (DBFS) içinde dosyaları kaydedebileceğiniz ve bunların Web tarayıcınıza erişebileceği özel bir klasördür. FileStore kullanarak şunları yapabilirsiniz:

  • ' İ çağırdığınızda HTML ve JavaScript içinde erişilebilen resimler ve kitaplıklar gibi dosyaları kaydedin displayHTML .
  • Yerel masaüstünüze indirmek istediğiniz çıkış dosyalarını kaydedin.
  • Upload Databricks 'te işlemek için yerel masaüstünüzdeki CSV ve diğer veri dosyaları.

Bazı özellikleri kullandığınızda Azure Databricks dosyaları FileStore altında aşağıdaki klasörlere koyar:

  • /FileStore/jars - karşıyayüklediğiniz kitaplıkları 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ı arabiriminikullanarak içe aktardığınız dosyaları içerir. Bu klasördeki dosyaları silerseniz, bu dosyalardan oluşturduğunuz tablolar artık erişilebilir olmayabilir.
  • /FileStore/plots - display() veya çizim gibi bir Python veya R çizim nesnesini çağırdığınızda not defterlerinde oluşturulan görüntüleri içerir ggplot matplotlib . Bu klasördeki dosyaları silerseniz, bunlara başvuran not defterlerinde bu çizimleri yeniden oluşturmanız gerekebilir. Daha fazla bilgi için bkz. Matplotlib ve ggplot2.
  • /FileStore/import-stage - not defterlerini veya databricks Arşivi dosyalarını içeri aktardığınızda oluşturulan geçici dosyaları içerir. Bu geçici dosyalar, Not defteri içeri aktarma işlemi tamamlandıktan sonra kaybolur.

Dosyayı FileStore 'a Kaydet

Dosyayı FileStore 'a kaydetmek için /FileStore DBFS 'deki dizine yerleştirin:

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

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

İçinde depolanan dosyalara /FileStore adresinde web tarayıcınızda erişilebilir https://<databricks-instance>/files/<path-to-file>?o=###### . Örneğin, içinde depoladığınız dosyaya, /FileStore/my-stuff/my-file.txt https://<databricks-instance>/files/my-stuff/my-file.txt?o=###### sonrakı sayının o= URL 'inizdeki ile aynı olduğu yerden erişilebilir.

Not

Dosyaları dizine yerleştirmek için DBFS dosya yükleme arabirimlerini de kullanabilirsiniz /FileStore . Bkz. Databricks CLI.

Not defterlerine statik görüntüler ekleme

files/Not defterlerinize statik görüntüleri eklemek için konumunu kullanabilirsiniz:

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

ya da Markaşağı resmi içeri aktarma sözdizimi:

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

DBFS API başvurusunu ve istek Python http Kitaplığı ' nı kullanarak statik görüntüleri karşıya yükleyebilirsiniz. Aşağıdaki örnekte:

  • <databricks-instance>Azure Databricks dağıtımınızın çalışma alanı URL 'siyle değiştirin.
  • <token> Kişisel erişim belirtecinizindeğeri ile değiştirin.
  • <image-dir> FileStore Görüntü dosyalarını karşıya yüklemek istediğiniz konum ile değiştirin.
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 bir görüntünün boyutunu ölçeklendirmek için, görüntüyü kopyalayın /FileStore ve ardından içindeki görüntü parametrelerini kullanarak yeniden boyutlandırın 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;">''')

JavaScript kitaplığı kullanma

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

FileStore demo Not defteri

Not defterini alma