Használhatja a pandast az Azure Databricksben?
A Databricks Runtime a pandas-t a standard Python csomagok egyikeként tartalmazza, lehetővé téve a pandas DataFrame-ek létrehozását és felhasználását a Databricks jegyzetfüzetekben és feladatokban.
A Databricks Runtime 10.4 LTS és újabb verzióiban a Sparkon futó Pandas API ismerős pandas-parancsokat biztosít a PySpark DataFrame-ek tetején. DataFrame-eket a pandas és a PySpark között is konvertálhat.
Az Apache Spark magában foglalja a Python-logika nyilat optimalizált végrehajtását pandas függvény API-k formájában, amelyek lehetővé teszik a felhasználók számára, hogy pandas-átalakításokat alkalmazzanak közvetlenül a PySpark DataFrame-ekre. Az Apache Spark támogatja a pandas UDF-eket is, amelyek hasonló nyilat használnak a Pythonban definiált tetszőleges felhasználói függvényekhez.
Hol tárol adatokat a pandas az Azure Databricksben?
A pandas használatával számos különböző helyen tárolhat adatokat az Azure Databricksben. Az adatok egyes helyekről való tárolásának és betöltésének lehetősége a munkaterület rendszergazdái által beállított konfigurációktól függ.
Feljegyzés
A Databricks azt javasolja, hogy az éles adatokat a felhőobjektum-tárolóban tárolja. Lásd: Csatlakozás az Azure Data Lake Storage Gen2-hez és a Blob Storage-hoz.
Ha unitykatalógus-kompatibilis munkaterületen tartózkodik, külső helyeken is hozzáférhet a felhőbeli tárolókhoz. Lásd: Külső hely létrehozása a felhőbeli tároló Azure Databrickshez való csatlakoztatásához.
A gyors feltáráshoz és a bizalmas adatok nélküli adatokhoz biztonságosan mentheti az adatokat relatív elérési utak vagy a DBFS használatával, ahogyan az alábbi példákban is látható:
import pandas as pd
df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])
df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/dbfs_test.csv")
A dbFS-be írt fájlokat a %fs
magic paranccsal ismerheti meg, ahogyan az alábbi példában is látható. Vegye figyelembe, hogy a /dbfs
címtár a parancsok gyökérútvonala.
%fs ls
Amikor relatív elérési útra menti a fájlt, annak helye attól függ, hol futtatja a kódot. Ha Databricks-jegyzetfüzetet használ, az adatfájl a fürt illesztőprogramjához csatolt kötettárolóba menti. Az ezen a helyen tárolt adatok véglegesen törlődnek a fürt leállásakor. Ha a Databricks Git-mappákat tetszőleges fájltámogatással támogatja, az adatok az aktuális projekt gyökeréhez lesznek mentve. Mindkét esetben megvizsgálhatja a magic paranccsal írt %sh
fájlokat, amelyek lehetővé teszik az egyszerű bash-műveleteket az aktuális gyökérkönyvtárhoz képest, ahogyan az alábbi példában is látható:
%sh ls
További információ arról, hogy az Azure Databricks hogyan tárolja a különböző fájlokat: Fájlok használata az Azure Databricksben.
Hogyan tölthet be adatokat a pandas használatával az Azure Databricksben?
Az Azure Databricks számos lehetőséget kínál az adatok munkaterületre való feltöltésének megkönnyítésére a feltáráshoz. Az adatok pandassal való betöltésének előnyben részesített módja attól függően változik, hogy hogyan tölti be az adatokat a munkaterületre.
Ha a helyi gépen a jegyzetfüzetek mellett kis adatfájlokat is tárol, a Git-mappákkal együtt feltöltheti az adatokat és a kódot. Ezután relatív elérési utakkal tölthet be adatfájlokat.
Az Azure Databricks széles körű felhasználói felületi lehetőségeket biztosít az adatbetöltéshez. A legtöbb beállítás Delta-táblákként tárolja az adatokat. beolvashat egy Delta-táblát egy Spark DataFrame-be, majd konvertálhatja egy pandas DataFrame-é.
Ha dbFS-sel vagy relatív elérési utakkal mentette az adatfájlokat, a DBFS vagy a relatív elérési utak használatával újra betöltheti ezeket az adatfájlokat. Az alábbi kód egy példát mutat be:
import pandas as pd
df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")
Az adatokat közvetlenül az Azure Data Lake Storage Gen2-ből töltheti be pandas és egy teljesen minősített URL-cím használatával. A felhőbeli adatok eléréséhez meg kell adnia a felhőbeli hitelesítő adatokat. A Python-csomagokat fsspec
is adlfs
telepíteni kell.
df = pd.read_csv(
f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
storage_options={
"sas_token": sas_token_value
}
)