Megosztás a következőn keresztül:


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
  }
)