Sdílet prostřednictvím


Začínáme: Ingestování a vkládání dalších dat

Tento článek začínáme vás provede použitím poznámkového bloku Azure Databricks k ingestování souboru CSV obsahujícího další data názvu dítěte do svazku katalogu Unity a následným importem nových dat názvu dítěte do existující tabulky pomocí Pythonu, Scaly a R.

Důležité

Tento článek začínáme vychází z článku Začínáme: Import a vizualizace dat CSV z poznámkového bloku. Abyste mohli tento článek dokončit, musíte dokončit kroky v tomto článku. Úplný poznámkový blok pro tento úvodní článek najdete v tématu Import a vizualizace datových poznámkových bloků.

Požadavky

K dokončení úkolů v tomto článku musíte splňovat následující požadavky:

  • Váš pracovní prostor musí mít povolený katalog Unity. Informace o tom, jak začít s katalogem Unity, najdete v tématu Nastavení a správa katalogu Unity.
  • Musíte mít oprávnění k používání existujícího výpočetního prostředku nebo k vytvoření nového výpočetního prostředku. Viz Začínáme: Nastavení účtu a pracovního prostoru nebo se obraťte na správce Databricks.

Tip

Dokončený poznámkový blok pro tento článek najdete v tématu Ingestování dalších datových poznámkových bloků.

Krok 1: Vytvoření nového poznámkového bloku

Vytvoření poznámkového bloku v pracovním prostoru:

  1. Na bočním panelu klikněte na Nová ikona Nový a potom klikněte na Poznámkový blok.
  2. Na stránce Vytvořit poznámkový blok:
    • Zadejte jedinečný název poznámkového bloku.
    • Nastavte výchozí jazyk poznámkového bloku a po zobrazení výzvy klikněte na Potvrdit .
    • Klikněte na Připojit a vyberte výpočetní prostředek. Pokud chcete vytvořit nový výpočetní prostředek, přečtěte si téma Použití výpočetních prostředků.

Další informace o vytváření a správě poznámkových bloků najdete v tématu Správa poznámkových bloků.

Krok 2: Definování proměnných

V tomto kroku definujete proměnné pro použití v ukázkovém poznámkovém bloku, který vytvoříte v tomto článku.

  1. Zkopírujte a vložte následující kód do nové prázdné buňky poznámkového bloku. Nahraďte <catalog-name>katalog, <volume-name> <schema-name>schéma a názvy svazků pro svazek katalogu Unity. Nahraďte <table_name> zvoleným názvem tabulky. Data jména dítěte uložíte do této tabulky dále v tomto článku.

  2. Stisknutím spustíte Shift+Enter buňku a vytvoříte novou prázdnou buňku.

    Python

    catalog = "<catalog_name>"
    schema = "<schema_name>"
    volume = "<volume_name>"
    file_name = "new_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 fileName = "new_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>"
    file_name <- "new_baby_names.csv"
    table_name <- "baby_names"
    path_volume <- paste0("/Volumes/", catalog, "/", schema, "/", volume, sep = "")
    path_table <- paste0(catalog, ".", schema, sep = "")
    print(path_volume) # Show the complete path
    print(path_table) # Show the complete path
    

Krok 3: Přidání nového souboru CSV dat do svazku katalogu Unity

Tento krok vytvoří datový rámec s df názvem nového dítěte pro verzi 2022 a uloží tato data do nového souboru CSV ve svazku katalogu Unity.

Poznámka:

Tento krok simuluje přidání nových ročních dat do existujících dat načtených za předchozí roky. V produkčním prostředí budou tato přírůstková data uložená v cloudovém úložišti.

  1. Zkopírujte a vložte následující kód do nové prázdné buňky poznámkového bloku. Tento kód vytvoří datový rámec s dalšími daty názvu dítěte a potom tato data zapíše do souboru CSV ve svazku katalogu Unity.

    Python

    data = [[2022, "CARL", "Albany", "M", 42]]
    
    df = spark.createDataFrame(data, schema="Year int, First_Name STRING, County STRING, Sex STRING, Count int")
    # display(df)
    (df.coalesce(1)
        .write
        .option("header", "true")
        .mode("overwrite")
        .csv(f"{path_volume}/{file_name}"))
    

    Scala

    val data = Seq((2022, "CARL", "Albany", "M", 42))
    val columns = Seq("Year", "First_Name", "County", "Sex", "Count")
    
    val df = data.toDF(columns: _*)
    
    // display(df)
    df.coalesce(1)
        .write
        .option("header", "true")
        .mode("overwrite")
        .csv(f"{pathVolume}/{fileName}")
    

    R

    # Load the SparkR package that is already preinstalled on the cluster.
    library(SparkR)
    
    data <- data.frame(Year = 2022,
        First_Name = "CARL",
        County = "Albany",
        Sex = "M",
        Count = 42)
    
    df <- createDataFrame(data)
    # display(df)
    write.df(df, path = paste0(path_volume, "/", file_name),
        source = "csv",
        mode = "overwrite",
        header = "true")
    
  2. Stisknutím klávesy Shift+Enter spusťte buňku a přejděte na další buňku.

Krok 4: Načtení dat do datového rámce ze souboru CSV

Poznámka:

Tento krok simuluje načítání dat z cloudového úložiště.

  1. Zkopírujte a vložte následující kód do prázdné buňky poznámkového bloku. Tento kód načte data nových jmen dětí do nového datového rámce ze souboru CSV.

    Python

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

    Scala

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

    R

    df1 <- read.df(paste0(path_volume, "/", file_name),
        source = "csv",
        header = TRUE,
        inferSchema = TRUE)
    display(df1)
    
  2. Stisknutím klávesy Shift+Enter spusťte buňku a přejděte na další buňku.

Krok 5: Vložení do existující tabulky

  1. Zkopírujte a vložte následující kód do prázdné buňky poznámkového bloku. Tento kód připojí data nových jmen dětí z datového rámce do existující tabulky.

    Python

    df.write.mode("append").insertInto(f"{path_table}.{table_name}")
    display(spark.sql(f"SELECT * FROM {path_table}.{table_name} WHERE Year = 2022"))
    

    Scala

    df1.write.mode("append").insertInto(s"${pathTable}.${tableName}")
    display(spark.sql(s"SELECT * FROM ${pathTable}.${tableName} WHERE Year = 2022"))
    

    R

    # The write.df function in R, as provided by the SparkR package, does not directly support writing to Unity Catalog.
    # In this example, you write the DataFrame into a temporary view and then use the SQL command to insert data from the temporary view to the Unity Catalog table
    createOrReplaceTempView(df1, "temp_view")
    sql(paste0("INSERT INTO ", path_table, ".", table_name, " SELECT * FROM temp_view"))
    display(sql(paste0("SELECT * FROM ", path_table, ".", table_name, " WHERE Year = 2022")))
    
  2. Stisknutím Ctrl+Enter spustíte buňku.

Ingestování dalších datových poznámkových bloků

K provedení kroků v tomto článku použijte jeden z následujících poznámkových bloků.

Python

Ingestování a vkládání dalších dat pomocí Pythonu

Získat poznámkový blok

Scala

Ingestování a vkládání dalších dat pomocí scaly

Získat poznámkový blok

R

Ingestování a vkládání dalších dat pomocí jazyka R

Získat poznámkový blok

Další kroky

Další informace o čištění a vylepšení dat najdete v tématu Začínáme: Vylepšení a čištění dat.

Další materiály