FileStore
Fontos
Ez a dokumentáció ki lett állítva, és lehet, hogy nem frissül. A tartalomban említett termékek, szolgáltatások vagy technológiák már nem támogatottak.
A FileStore egy speciális mappa DBFS-, ahol fájlokat menthet, és a webböngésző számára is elérhetővé teheti őket. A FileStore használatával:
- Mentsen olyan fájlokat, például képeket és kódtárakat, amelyek a HTML-ben és a JavaScriptben érhetők el híváskor
displayHTML
. - Mentse a helyi asztalra letölteni kívánt kimeneti fájlokat.
- Töltsön fel CSV-ket és más adatfájlokat a helyi asztalról a Databricksen való feldolgozáshoz.
Bizonyos funkciók használatakor az Azure Databricks a fájlokat a következő mappákba helyezi a FileStore alatt:
-
/FileStore/jars
- a feltöltött örökölt munkaterület-kódtárakat tartalmazza. Ha törli a mappában lévő fájlokat, előfordulhat, hogy a munkaterületen ezekre a fájlokra hivatkozó tárak már nem működnek. -
/FileStore/tables
- a felhasználói felületen importált fájlokat tartalmazza. Ha törli a fájlokat ebben a mappában, előfordulhat, hogy az ezekből a fájlokból létrehozott táblák már nem lesznek elérhetők.
Fontos
A kódtárak a Databricks Runtime 14.3 LTS és az alábbi Databricks Runtime használatakor telepíthetők a DBFS-ből. A munkaterület bármely felhasználója módosíthatja azonban a DBFS-ben tárolt kódtárfájlokat. Az Azure Databricks-munkaterületen lévő kódtárak biztonságának javítása érdekében a tárfájlok dbFS-gyökérben való tárolása alapértelmezés szerint elavult és le van tiltva a Databricks Runtime 15.1-ben és újabb verzióiban. Lásd: A tárak tárolása a DBFS-gyökérben alapértelmezés szerint elavult és le van tiltva.
Ehelyett a Databricks azt javasolja, töltse fel az összes tárat, beleértve a Python-kódtárakat, a JAR-fájlokat és a Spark-összekötőket, munkaterület-fájlokba vagy Unity Catalog-kötetekbe, vagy tárcsomag-adattárak használatával. Ha a számítási feladat nem támogatja ezeket a mintákat, a felhőobjektum-tárolóban tárolt kódtárakat is használhatja.
Fájl mentése a FileStore-ba
dbutils.fs.put
Tetszőleges szövegfájlokat írhat a könyvtárba a /FileStore
DBFS-ben:
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")
Az alábbiakban cserélje le <databricks-instance>
az Azure Databricks-üzemelő példány munkaterületi URL-címét .
A tárolt /FileStore
fájlok a webböngészőben érhetők el a következő címen https://<databricks-instance>/files/<path-to-file>?o=######
: . Az /FileStore/my-stuff/my-file.txt
tárolt fájl például elérhető https://<databricks-instance>/files/my-stuff/my-file.txt?o=######
, ahol a o=
utáni szám megegyezik az URL-címével.
Feljegyzés
A DBFS fájlfeltöltési felületekkel fájlokat is elhelyezhet a /FileStore
könyvtárban. Lásd: Táblák felderítése és létrehozása a DBFS-ben..
Statikus képek beágyazása jegyzetfüzetekbe
A hely használatával files/
statikus képeket ágyazhat be a jegyzetfüzetekbe:
displayHTML("<img src ='files/image.jpg'>")
vagy Markdown-képimportálási szintaxis:
%md

Példa a Markdown használatával
Tegyük fel például, hogy a Databricks-embléma képfájlja a FileStore-ban található:
dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png
Ha a következő kódot egy Markdown-cellába írja be, a rendszerkép a cellában jelenik meg:
Renderelt példa:
Példa a DBFS API használatára, és Python HTTP-kódtárat kér
Statikus képeket a DBFS API-val és a kérések Python HTTP-kódtárával tölthet fel. Az alábbi példában:
- Cserélje le
<databricks-instance>
az Azure Databricks-üzemelő példány munkaterületi URL-címét . - Cserélje le
<token>
a személyes hozzáférési jogkivonat értékét. - Cserélje le
<image-dir>
arra a helyreFileStore
, ahová fel szeretné tölteni a képfájlokat.
Feljegyzés
Ajánlott biztonsági eljárásként, ha automatizált eszközökkel, rendszerekkel, szkriptekkel és alkalmazásokkal hitelesít, a Databricks azt javasolja, hogy munkaterület-felhasználók helyett a szolgáltatásnevekhez tartozó személyes hozzáférési jogkivonatokat használja. A szolgáltatásnevek jogkivonatainak létrehozásáról a szolgáltatásnév jogkivonatainak kezelése című témakörben olvashat.
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)
Statikus képek méretezése
A DBFS-be mentett kép méretének skálázásához másolja a képet a /FileStore
mappába, majd a displayHTML
képparaméterek használatával állítsa át a méretét.
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;">''')
Példa jegyzetfüzetre: JavaScript-kódtár használata
Ez a jegyzetfüzet bemutatja, hogyan használható a FileStore JavaScript-kódtárak használatára.