Oktatóanyag: CSV-adatok importálása és vizualizációja jegyzetfüzetből

Ez az oktatóanyag bemutatja, hogy egy Azure Databricks-jegyzetfüzet használatával adatokat importálhat egy CSV-fájlból, amely babanévadatokat tartalmaz health.data.ny.gov a Unity Catalog-kötetbe Python, Scala és R használatával. Megtudhatja továbbá, hogyan módosíthatja az oszlopnevet, vizualizálhatja az adatokat, és menthet egy táblába.

Megjegyzés:

Ha a Databricks Free Editiont használja, az oktatóanyagban szereplő összes kódhoz válassza a Python lapot. Az Ingyenes kiadás nem támogatja az R-t vagy a Scalát. Emellett a Free Edition korlátozza a kimenő internet-hozzáférést, ezért a CSV-fájlt a munkaterület felhasználói felületén kell feltöltenie ahelyett, hogy kóddal töltené le. Részletes útmutatásért lásd a 3. lépést .

Követelmények

A cikkben szereplő feladatok elvégzéséhez meg kell felelnie a következő követelményeknek:

  • A munkaterületen engedélyezve kell lennie Unity Catalog. A Unity Catalog használatának első lépéseiről további információt a Unity Catalog használatának első lépéseit ismertető cikkben talál. Az Azure Databricks Free Edition és az ingyenes próbaverziós munkaterületek alapértelmezés szerint engedélyezve vannak a Unity Katalógusban.
  • Rendelkeznie kell a kötet WRITE VOLUME jogosultságával, a fő séma USE SCHEMA jogosultságával és a fő katalógus USE CATALOG jogosultságával. Az Ingyenes kiadás felhasználói alapértelmezés szerint rendelkeznek ezekkel a jogosultságokkal a munkaterület-katalógusban és default a sémában.
  • Rendelkeznie kell engedéllyel egy meglévő számítási erőforrás használatához vagy egy új számítási erőforrás létrehozásához. A Compute megtekintéséhez forduljon az Azure Databricks rendszergazdájához.

Tipp.

A cikk befejezett jegyzetfüzeteit az adatjegyzetfüzetek importálása és vizualizációja című témakörben találja.

1. lépés: Új jegyzetfüzet létrehozása

Ha jegyzetfüzetet szeretne létrehozni a munkaterületen, kattintson Új ikonaz Oldalsáv Új gombjára, majd a Jegyzetfüzet elemre. Megnyílik egy üres jegyzetfüzet a munkaterületen.

A jegyzetfüzetek létrehozásáról és kezeléséről további információt a Databricks-jegyzetfüzetek kezelése című témakörben talál.

2. lépés: Változók definiálása

Ebben a lépésben a cikkben létrehozott példajegyzetfüzetben használt változókat definiálja. Szüksége van a Unity Catalog katalógus, séma és kötet nevére.

Tipp.

Ha nem ismeri a katalógus és a séma nevét, kattintson az Adatok ikonra.Katalógus az oldalsávon. A munkaterület-katalógus egy nevet oszt meg a munkaterülettel, és megjelenik a katalóguspanelen. Nyissa meg az elérhető sémák megtekintéséért. Az Ingyenes kiadás és az ingyenes próbaverzió felhasználói használhatják a munkaterület katalógusát és a sémát default .

Ha nem rendelkezik kötettel, hozzon létre egyet úgy, hogy a következő parancsot futtatja egy jegyzetfüzetcellában, és cserélje le a <catalog_name> és <schema_name> helyére a saját értékeit.

CREATE VOLUME IF NOT EXISTS <catalog_name>.<schema_name>.my_volume
  1. Másolja és illessze be a következő kódot az új üres jegyzetfüzetcellába. Cserélje le a <catalog-name>, <schema-name>és <volume-name> elemeket a Unity Catalog kötetének katalógus-, séma- és kötetneveire. Ha szeretné, cserélje le a table_name értéket egy tetszőleges táblanévre. A babanév adatait a cikk későbbi részében ebbe a táblába mentheti.

  2. Nyomja meg a Shift+Enter gombot a cella futtatásához és egy új üres cella létrehozásához.

    Python

    catalog = "<catalog_name>"
    schema = "<schema_name>"
    volume = "<volume_name>"
    download_url = "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
    file_name = "baby_names.csv"
    table_name = "baby_names"
    path_volume = "/Volumes/" + catalog + "/" + schema + "/" + volume
    path_table = catalog + "." + schema
    print(path_table) # Show the complete path
    print(path_volume) # Show the complete path
    

    Scala

    val catalog = "<catalog_name>"
    val schema = "<schema_name>"
    val volume = "<volume_name>"
    val downloadUrl = "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
    val fileName = "baby_names.csv"
    val tableName = "baby_names"
    val pathVolume = s"/Volumes/${catalog}/${schema}/${volume}"
    val pathTable = s"${catalog}.${schema}"
    print(pathVolume) // Show the complete path
    print(pathTable) // Show the complete path
    

    R

    catalog <- "<catalog_name>"
    schema <- "<schema_name>"
    volume <- "<volume_name>"
    download_url <- "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
    file_name <- "baby_names.csv"
    table_name <- "baby_names"
    path_volume <- paste("/Volumes/", catalog, "/", schema, "/", volume, sep = "")
    path_table <- paste(catalog, ".", schema, sep = "")
    print(path_volume) # Show the complete path
    print(path_table) # Show the complete path
    

3. lépés: CSV-fájl importálása

Ebben a lépésben importál egy CSV-fájlt, amely babanévadatokat tartalmaz health.data.ny.gov a Unity Catalog-kötetbe. Válasszon az alábbi módszerek közül :

  • Feltöltés a munkaterület felhasználói felületén – Ezt a módszert akkor használja, ha a Databricks Free Edition kiadásban van, vagy ha a B lehetőségben a kódletöltés hálózati hibával meghiúsul. A Free Edition és más kiszolgáló nélküli számítási környezetek korlátozzák a kimenő internet-hozzáférést, ezért fel kell töltenie a fájlt a helyi gépről.
  • Letöltés kóddal – Ezt a módszert akkor használja, ha a számítási környezet kimenő internet-hozzáféréssel rendelkezik.

A lehetőség A: Feltöltés a munkaterület felhasználói felületén

  1. A helyi számítógépén, a böngészőben nyissa meg a health.data.ny.gov/api/views/jxy9-yhdk/rows.csv fájlt. A fájl a következő módon rows.csvtölthető le a számítógépre: .
  2. Keresse meg a letöltött fájlt a számítógépén, és nevezze át rows.csv -ról baby_names.csv -re. Ez megegyezik a file_name 2. lépésben definiált változóval.
  3. Térjen vissza az Azure Databricks-munkaterületre. Az oldalsávon kattintson az Új ikonÚj > adat hozzáadása vagy feltöltése.
  4. Kattintson a Fájlok feltöltése kötetre elemre.
  5. Kattintson a Tallózás gombra , jelölje ki a baby_names.csv fájlt, vagy húzza a feltöltési területre.
  6. A Célkötet területen válassza ki a 2. lépésben megadott kötetet.
  7. A feltöltés befejezése után térjen vissza a jegyzetfüzethez, és folytassa a 4. lépéssel.

A fájlok feltöltésével kapcsolatos további információkért lásd: Fájlok használata a Unity-katalógus köteteiben.

B. lehetőség: Letöltés kóddal

  1. Másolja és illessze be a következő kódot az új üres jegyzetfüzetcellába. Ez a kód a rows.csv fájlt másolja be a Unity Catalog-kötetbe a Databricks dbutils parancs használatával.

  2. Nyomja meg a Shift+Enter gombot a cella futtatásához, majd lépjen a következő cellára.

    Python

    dbutils.fs.cp(f"{download_url}", f"{path_volume}" + "/" + f"{file_name}")
    

    Scala

    dbutils.fs.cp(downloadUrl, s"${pathVolume}/${fileName}")
    

    R

    dbutils.fs.cp(download_url, paste(path_volume, "/", file_name, sep = ""))
    

4. lépés: CSV-adatok betöltése DataFrame-be

Ebben a lépésben egy df nevű DataFrame-et hoz létre abból a CSV-fájlból, amelyet korábban betöltött a Unity Catalog-kötetbe a spark.read.csv metódus használatával.

  1. Másolja és illessze be a következő kódot az új üres jegyzetfüzetcellába. Ez a kód betölti a babanév adatait a DataFrame-be df a CSV-fájlból.

  2. Nyomja meg a Shift+Enter gombot a cella futtatásához, majd lépjen a következő cellára.

    Python

    df = spark.read.csv(f"{path_volume}/{file_name}",
      header=True,
      inferSchema=True,
      sep=",")
    

    Scala

    val df = spark.read
        .option("header", "true")
        .option("inferSchema", "true")
        .option("delimiter", ",")
        .csv(s"${pathVolume}/${fileName}")
    

    R

    # Load the SparkR package that is already preinstalled on the cluster.
    library(SparkR)
    
    df <- read.df(paste(path_volume, "/", file_name, sep=""),
      source="csv",
      header = TRUE,
      inferSchema = TRUE,
      delimiter = ",")
    

Számos támogatott fájlformátumból tölthet be adatokat.

5. lépés: Adatok megjelenítése jegyzetfüzetből

Ebben a lépésben a display() metódussal jeleníti meg a DataFrame tartalmát a jegyzetfüzet egy táblájában, majd megjelenítheti az adatokat egy felhőalapú szódiagramon a jegyzetfüzetben.

  1. Másolja és illessze be a következő kódot az új üres jegyzetfüzetcellába, majd kattintson a Cella futtatása elemre az adatok táblázatbeli megjelenítéséhez.

    Python

    display(df)
    

    Scala

    display(df)
    

    R

    display(df)
    
  2. Tekintse át az eredményeket a táblázatban.

  3. A Tábla lap mellett kattintson a +, majd a Vizualizációselemre.

  4. A vizualizációszerkesztőben kattintson a Vizualizáció típusa elemre, és ellenőrizze, hogy a Word-felhő van-e kiválasztva.

  5. A Szavak oszlopbanellenőrizze, hogy a First Name van-e kijelölve.

  6. A Frekvenciakorlátesetében kattintson a 35gombra.

    szófelhő diagram

  7. Kattintson a Mentés.

6. lépés: A DataFrame mentése táblába

Fontos

A DataFrame Unity-katalógusban való mentéséhez CREATE táblajogokkal kell rendelkeznie a katalógusban és a sémában. A Unity Catalog engedélyekkel kapcsolatos további információkért tekintse meg Jogosultságok és biztonságos objektumok a Unity Catalog és Jogosultságok kezelése a Unity Katalógusbancímű témakört.

  1. Másolja és illessze be a következő kódot egy üres jegyzetfüzetcellába. Ez a kód egy szóközt cserél le az oszlopnévben. Speciális karakterek, például szóközök nem engedélyezettek az oszlopnevekben. Ez a kód az Apache Spark withColumnRenamed() metódust használja.

    Python

    df = df.withColumnRenamed("First Name", "First_Name")
    df.printSchema
    

    Scala

    val dfRenamedColumn = df.withColumnRenamed("First Name", "First_Name")
    // when modifying a DataFrame in Scala, you must assign it to a new variable
    dfRenamedColumn.printSchema()
    

    R

    df <- withColumnRenamed(df, "First Name", "First_Name")
    printSchema(df)
    
  2. Másolja és illessze be a következő kódot egy üres jegyzetfüzetcellába. Ez a kód a Cikk elején definiált táblanévváltozó használatával menti a DataFrame tartalmát a Unity Catalog egyik táblájába.

    Python

    df.write.mode("overwrite").saveAsTable(f"{path_table}" + "." + f"{table_name}")
    

    Scala

    dfRenamedColumn.write.mode("overwrite").saveAsTable(s"${pathTable}.${tableName}")
    

    R

    saveAsTable(df, paste(path_table, ".", table_name), mode = "overwrite")
    
  3. A táblázat mentésének ellenőrzéséhez kattintson Katalógus a bal oldali oldalsávon a Katalóguskezelő felhasználói felületének megnyitásához. Nyissa meg a katalógust, majd a sémát annak ellenőrzéséhez, hogy megjelenik-e a tábla.

  4. A táblázatra kattintva megtekintheti a táblázatsémát az Áttekintés lapon.

  5. Kattintson Mintaadatok elemre a táblázat 100 adatsorának megtekintéséhez.

Adatjegyzetfüzetek importálása és vizualizációja

A cikk lépéseinek végrehajtásához használja az alábbi jegyzetfüzetek egyikét. Cserélje le a <catalog-name>, <schema-name>és <volume-name> elemeket a Unity Catalog kötetének katalógus-, séma- és kötetneveire. Ha szeretné, cserélje le a table_name értéket egy tetszőleges táblanévre.

Python

Adatok importálása CSV-ből a Python használatával

Jegyzetfüzet lekérése

Scala

Adatok importálása CSV-ből a Scala használatával

Jegyzetfüzet lekérése

R

Adatok importálása CSV-ből az R használatával

Jegyzetfüzet lekérése

Következő lépések

További erőforrások