Udostępnij za pośrednictwem


Samouczek: ładowanie i przekształcanie danych przy użyciu ramek danych platformy Apache Spark

W tym samouczku pokazano, jak ładować i przekształcać dane przy użyciu interfejsu API DataFrame Apache Spark Python (PySpark), interfejsu API DataFrame Apache Spark Scala oraz interfejsu API SparkDataFrame SparkR w usłudze Azure Databricks.

Uwaga

Jeśli używasz bezpłatnej wersji usługi Databricks, wybierz kartę Python dla wszystkich przykładów kodu w tym samouczku. Wersja Bezpłatna nie obsługuje języka R ani Scala. Ponadto wersja Free Edition ogranicza dostęp wychodzący do Internetu, dlatego należy załadować plik CSV przy użyciu interfejsu użytkownika obszaru roboczego zamiast pobierania go za pomocą kodu. Aby uzyskać szczegółowe instrukcje, zobacz Krok 1 .

Po ukończeniu tego samouczka dowiesz się, czym jest ramka danych i zapoznasz się z następującymi zadaniami:

Python

Zobacz też dokumentację interfejsu API platformy Apache Spark PySpark.

Skala

Zobacz też Dokumentację interfejsu API języka Scala platformy Apache Spark.

R

Zobacz też dokumentację interfejsu API platformy Apache SparkR.

Co to jest ramka danych?

Ramka danych to dwuwymiarowa struktura danych z kolumnami potencjalnie różnych typów. Ramka danych może być podobna do arkusza kalkulacyjnego, tabeli SQL lub słownika obiektów serii. Ramki danych platformy Apache Spark zapewniają bogaty zestaw funkcji (wybieranie kolumn, filtrowanie, sprzężenie, agregowanie), które umożliwiają efektywne rozwiązywanie typowych problemów z analizą danych.

Ramki danych platformy Apache Spark to abstrakcja oparta na odpornych rozproszonych zestawach danych (RDD). Ramki danych platformy Spark i platforma Spark SQL używają ujednoliconego aparatu planowania i optymalizacji, co pozwala uzyskać niemal identyczną wydajność we wszystkich obsługiwanych językach w usłudze Azure Databricks (Python, SQL, Scala i R).

Wymagania

Aby wykonać czynności opisane w poniższym samouczku, musisz spełnić następujące wymagania:

  • Aby użyć przykładów w tym samouczku, obszar roboczy musi mieć włączony Unity Catalog. Bezpłatna edycja Azure Databricks oraz bezpłatne obszary robocze wersji próbnej mają domyślnie włączony Unity Catalog.

  • Przykłady w tym samouczku używają woluminu Unity Catalog do przechowania danych przykładowych. Aby użyć tych przykładów, utwórz wolumin i użyj wykazu, schematu i nazw woluminów, aby ustawić ścieżkę woluminu używaną przez przykłady. Użytkownicy wersji Bezpłatnej mają domyślnie dostęp do katalogu obszarów roboczych i schematu default .

  • Musisz mieć następujące uprawnienia w katalogu Unity:

    • READ VOLUME i WRITE VOLUME dla objętości używanej w tym samouczku
    • USE SCHEMA dla schematu używanego na potrzeby tego samouczka
    • USE CATALOG dla katalogu używanego w tym poradniku

    Aby ustawić te uprawnienia, skontaktuj się z administratorem usługi Azure Databricks lub przywileje usługi Unity Catalog oraz zabezpieczane obiekty. Użytkownicy wersji Bezpłatnej domyślnie mają te uprawnienia do katalogu obszarów roboczych i default schematu.

Wskazówka

Aby zapoznać się z ukończonym notesem do tego artykułu, zobacz notesy samouczka DataFrame.

Krok 1. Definiowanie zmiennych i ładowanie pliku CSV

Ten krok definiuje zmienne do użycia w tym samouczku, a następnie ładuje plik CSV zawierający dane dotyczące imion dzieci z health.data.ny.gov do woluminu katalogu Unity. Do nazwania potrzebne są nazwy katalogu, schematu oraz woluminu z Unity Catalog.

Wskazówka

Jeśli nie znasz nazwy wykazu i schematu, kliknij ikonę Dane.Wykaz na pasku bocznym. Katalog obszaru roboczego nosi taką samą nazwę jak twój obszar roboczy i jest wymieniony w panelu katalogu. Rozwiń go, aby wyświetlić dostępne schematy. Użytkownicy wersji bezpłatnej i bezpłatnej wersji próbnej mogą korzystać z katalogu obszarów roboczych i schematu default .

Jeśli nie masz woluminu, utwórz go, uruchamiając następujące polecenie w komórce notebooka (zastąp <catalog_name> i <schema_name> swoimi wartościami):

CREATE VOLUME IF NOT EXISTS <catalog_name>.<schema_name>.my_volume
  1. Otwórz nowy notes, klikając ikonę Nowa ikona . Aby dowiedzieć się, jak nawigować po notesach usługi Azure Databricks, zobacz Dostosowywanie wyglądu notesu.

  2. Skopiuj i wklej następujący kod do nowej pustej komórki notesu. Zastąp <catalog-name>, <schema-name>i <volume-name> nazwami katalogu, schematu i wolumenu dla wolumenu Unity Catalog. Zastąp <table_name> wybraną nazwą tabeli. Dane o nazwie dziecka są ładowane do tej tabeli w dalszej części tego samouczka.

    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 = "rows.csv"
    table_name = "<table_name>"
    path_volume = "/Volumes/" + catalog + "/" + schema + "/" + volume
    path_table = catalog + "." + schema
    print(path_table) # Show the complete path
    print(path_volume) # Show the complete path
    

    Skala

    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 = "rows.csv"
    val tableName = "<table_name>"
    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 <- "rows.csv"
    table_name <- "<table_name>"
    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. Naciśnij Shift+Enter , aby uruchomić komórkę i utworzyć nową pustą komórkę.

  4. Załaduj plik CSV do woluminu. Wybierz jedną z poniższych metod:

    • Przekaż za pomocą interfejsu użytkownika obszaru roboczego — użyj tej metody, jeśli korzystasz z usługi Databricks Free Edition lub jeśli pobieranie kodu w opcji B nie powiedzie się z powodu błędu sieciowego. Wersja Bezpłatna i inne bezserwerowe środowiska obliczeniowe ograniczają wychodzący dostęp do Internetu, więc musisz przekazać plik z komputera lokalnego.
    • Pobierz przy użyciu kodu — użyj tej metody, jeśli środowisko obliczeniowe ma wychodzący dostęp do Internetu.

    Opcja A: Przesyłanie za pomocą interfejsu użytkownika środowiska pracy

    1. Na komputerze lokalnym otwórz health.data.ny.gov/api/views/jxy9-yhdk/rows.csv w przeglądarce. Plik jest pobierany na komputer jako rows.csv, który jest zgodny ze zdefiniowaną wcześniej zmienną file_name .
    2. Wróć do obszaru roboczego usługi Azure Databricks. Na pasku bocznym kliknij pozycję Nowa ikona ikona Dodaj lub prześlij dane.
    3. Kliknij Przekaż pliki do woluminu.
    4. Kliknij przeglądaj i wybierz rows.csv plik lub przeciągnij go i upuść w obszarze przesyłania.
    5. W obszarze Wolumin docelowy wybierz wolumin określony powyżej.
    6. Po zakończeniu przekazywania wróć do notatnika i przejdź do Kroku 2.

    Aby uzyskać więcej informacji na temat przesyłania plików, zobacz Przesyłanie plików do woluminu Unity Catalogu.

    Opcja B: Pobieranie przy użyciu kodu

    Skopiuj i wklej następujący kod do nowej pustej komórki notesu. Ten kod kopiuje plik rows.csv z health.data.ny.gov do woluminu Unity Catalog przy użyciu polecenia Databricks dbutils. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

    Python

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

    Skala

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

    R

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

Krok 2. Tworzenie ramki danych

Ten krok tworzy ramkę danych o nazwie z df1 danymi testowymi, a następnie wyświetla jej zawartość.

  1. Skopiuj i wklej następujący kod do nowej pustej komórki notesu. Ten kod tworzy ramkę danych z danymi testowymi, a następnie wyświetla zawartość i schemat ramki danych.

    Python

    data = [[2021, "test", "Albany", "M", 42]]
    columns = ["Year", "First_Name", "County", "Sex", "Count"]
    
    # highlight-next-line
    df1 = spark.createDataFrame(data, schema="Year int, First_Name STRING, County STRING, Sex STRING, Count int")
    display(df1) # The display() method is specific to Databricks notebooks and provides a richer visualization.
    # df1.show() The show() method is a part of the Apache Spark DataFrame API and provides basic visualization.
    

    Skala

    val data = Seq((2021, "test", "Albany", "M", 42))
    val columns = Seq("Year", "First_Name", "County", "Sex", "Count")
    
    // highlight-next-line
    val df1 = data.toDF(columns: _*)
    display(df1) // The display() method is specific to Databricks notebooks and provides a richer visualization.
    // df1.show() The show() method is a part of the Apache Spark DataFrame API and provides basic visualization.
    

    R

    # Load the SparkR package that is already preinstalled on the cluster.
    library(SparkR)
    
    data <- data.frame(
      Year = as.integer(c(2021)),
      First_Name = c("test"),
      County = c("Albany"),
      Sex = c("M"),
      Count = as.integer(c(42))
    )
    
    # highlight-next-line
    df1 <- createDataFrame(data)
    display(df1) # The display() method is specific to Databricks notebooks and provides a richer visualization.
    # head(df1) The head() method is a part of the Apache SparkR DataFrame API and provides basic visualization.
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Krok 3. Ładowanie danych do ramki danych z pliku CSV

W tym kroku zostanie utworzony DataFrame o nazwie df_csv z pliku CSV, który został wcześniej załadowany do wolumenu Unity Catalog. Zobacz spark.read.csv.

  1. Skopiuj i wklej następujący kod do nowej pustej komórki notesu. Ten kod ładuje dane dotyczące imion dzieci do ramki danych df_csv z pliku CSV, a następnie wyświetla jej zawartość.

    Python

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

    Skala

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

    R

    df_csv <- read.df(paste(path_volume, "/", file_name, sep=""),
        source="csv",
        header = TRUE,
        inferSchema = TRUE,
        delimiter = ",")
    
    display(df_csv)
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Dane można załadować z wielu obsługiwanych formatów plików.

Krok 4. Wyświetlanie ramki danych i interakcja z nią

Wyświetlaj ramki danych dotyczące imion dla dzieci i wchodzić w interakcję z nimi, korzystając z poniższych metod.

Dowiedz się, jak wyświetlić schemat ramki danych platformy Apache Spark. Platforma Apache Spark używa terminu schematu, aby odwoływać się do nazw i typów danych kolumn w ramce danych.

Uwaga

Usługa Azure Databricks używa również terminu schema do opisania kolekcji tabel zarejestrowanych w wykazie.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod przedstawia schemat ramek danych przy użyciu metody .printSchema(), aby wyświetlić schematy dwóch ramek danych — aby przygotować się do zjednoczenia dwóch ramek danych.

    Python

    df_csv.printSchema()
    df1.printSchema()
    

    Skala

    dfCsv.printSchema()
    df1.printSchema()
    

    R

    printSchema(df_csv)
    printSchema(df1)
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Zmienianie nazwy kolumny w ramce danych

Dowiedz się, jak zmienić nazwę kolumny w ramce danych.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod zmienia nazwę kolumny w ramce danych df1_csv w celu dopasowania do odpowiedniej kolumny w ramce danych df1. Ten kod używa metody Apache Spark withColumnRenamed() .

    Python

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

    Skala

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

    R

    df_csv <- withColumnRenamed(df_csv, "First Name", "First_Name")
    printSchema(df_csv)
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Łączenie ramek danych

Dowiedz się, jak utworzyć nową ramkę danych, która dodaje wiersze jednej ramki danych do innej.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod używa metody Apache Spark union() , aby połączyć zawartość pierwszej ramki df danych z ramą danych df_csv zawierającą dane nazw dzieci załadowanych z pliku CSV.

    Python

    df = df1.union(df_csv)
    display(df)
    

    Skala

    val df = df1.union(dfCsvRenamed)
    display(df)
    

    R

    display(df <- union(df1, df_csv))
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Filtrowanie wierszy w ramce danych

Odkryj najpopularniejsze nazwy dzieci w zestawie danych, filtrując wiersze przy użyciu metod platformy Apache Spark .filter() lub .where(). Użyj filtrowania, aby wybrać podzbiór wierszy, które mają być zwracane lub modyfikowane w ramce danych. Nie ma różnicy w wydajności lub składni, jak pokazano w poniższych przykładach.

Korzystanie z metody .filter()

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod używa metody Apache Spark .filter() do wyświetlania tych wierszy w ramce danych z liczbą większą niż 50.

    Python
    display(df.filter(df["Count"] > 50))
    
    Skala
    display(df.filter(df("Count") > 50))
    
    R
    display(filteredDF <- filter(df, df$Count > 50))
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Używanie metody .where()

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod używa metody Apache Spark .where() do wyświetlania tych wierszy w ramce danych z liczbą większą niż 50.

    Python
    display(df.where(df["Count"] > 50))
    
    Skala
    display(df.where(df("Count") > 50))
    
    R
    display(filtered_df <- where(df, df$Count > 50))
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Wybieranie kolumn z ramki danych i kolejność według częstotliwości

Dowiedz się o częstotliwości imion dzieci, używając metody select(), aby określić kolumny z ramki danych do zwrócenia. Użyj funkcji platformy Apache Spark orderby i desc do uporządkowania wyników.

Moduł pyspark.sql dla platformy Apache Spark zapewnia obsługę funkcji SQL. Wśród tych funkcji używanych w tym samouczku są funkcje platformy Apache Spark orderBy(), desc()i expr() . Korzystanie z tych funkcji można włączyć, importując je do sesji zgodnie z potrzebami.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod importuje funkcję desc(), a następnie używa metody Apache Spark select() oraz funkcji Apache Spark orderBy() i desc() do wyświetlania najczęstszych nazw i ich liczby w kolejności malejącej.

    Python

    from pyspark.sql.functions import desc
    display(df.select("First_Name", "Count").orderBy(desc("Count")))
    

    Skala

    import org.apache.spark.sql.functions.desc
    display(df.select("First_Name", "Count").orderBy(desc("Count")))
    

    R

    display(arrange(select(df, df$First_Name, df$Count), desc(df$Count)))
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Utwórz podzestaw ramki danych

Dowiedz się, jak utworzyć podzestaw ramki danych na podstawie istniejącej ramki danych.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod używa metody Apache Spark filter , aby utworzyć nową ramkę danych ograniczającą dane według roku, liczby i płci. Używa metody select() platformy Apache Spark, aby ograniczyć kolumny. Używa również Apache Spark orderBy() oraz funkcji desc() do sortowania nowej ramki danych według liczby.

    Python

    subsetDF = df.filter((df["Year"] == 2009) & (df["Count"] > 100) & (df["Sex"] == "F")).select("First_Name", "County", "Count").orderBy(desc("Count"))
    display(subsetDF)
    

    Skala

    val subsetDF = df.filter((df("Year") === 2009) && (df("Count") > 100) && (df("Sex") === "F")).select("First_Name", "County", "Count").orderBy(desc("Count"))
    
    display(subsetDF)
    

    R

    subsetDF <- select(filter(df, (df$Count > 100) & (df$year == 2009) & df["Sex"] == "F")), "First_Name", "County", "Count")
    display(subsetDF)
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Krok 5. Zapisywanie ramki danych

Dowiedz się, jak zapisać ramkę danych. Możesz zapisać ramkę danych w tabeli lub zapisać ramkę danych w pliku lub wielu plikach.

Zapisz ramkę danych w tabeli

Usługa Azure Databricks domyślnie używa formatu usługi Delta Lake dla wszystkich tabel. Aby zapisać DataFrame, musisz mieć uprawnienia do tabeli CREATE w katalogu i schemacie.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod zapisuje zawartość ramki danych w tabeli przy użyciu zmiennej zdefiniowanej na początku tego samouczka.

    Python

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

    Skala

    df.write.mode("overwrite").saveAsTable(s"$pathTable" + "." + s"$tableName")
    

    R

    saveAsTable(df, paste(path_table, ".", table_name), mode = "overwrite")
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Większość aplikacji platformy Apache Spark działa na dużych zestawach danych i w sposób rozproszony. Platforma Apache Spark zapisuje katalog plików, a nie jeden plik. Usługa Delta Lake dzieli foldery Parquet i pliki. Wiele systemów danych może odczytywać te katalogi plików. Usługa Azure Databricks zaleca używanie tabel zamiast ścieżek plików dla większości aplikacji.

Zapisz DataFrame do plików JSON

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod zapisuje ramkę danych w katalogu plików JSON.

    Python

    df.write.format("json").mode("overwrite").save("/tmp/json_data")
    

    Skala

    df.write.format("json").mode("overwrite").save("/tmp/json_data")
    

    R

    write.df(df, path = "/tmp/json_data", source = "json", mode = "overwrite")
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Odczytywanie ramki danych z pliku JSON

Dowiedz się, jak używać metody Apache Spark spark.read.format() do odczytywania danych JSON z katalogu do ramki danych.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod wyświetla pliki JSON zapisane w poprzednim przykładzie.

    Python

    display(spark.read.format("json").json("/tmp/json_data"))
    

    Skala

    display(spark.read.format("json").json("/tmp/json_data"))
    

    R

    display(read.json("/tmp/json_data"))
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Dodatkowe zadania: Uruchamianie zapytań SQL w PySpark, Scala i R

Ramki danych platformy Apache Spark udostępniają następujące opcje łączenia języka SQL z narzędziami PySpark, Scala i R. Poniższy kod można uruchomić w tym samym notesie, który został utworzony na potrzeby tego samouczka.

Określanie kolumny jako zapytania SQL

Dowiedz się, jak używać metody Apache Spark selectExpr() . Jest to wariant select() metody, która akceptuje wyrażenia SQL i zwraca zaktualizowaną ramkę danych. Ta metoda umożliwia użycie wyrażenia SQL, takiego jak upper.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod używa metody selectExpr() platformy Apache Spark i wyrażenia upper SQL, aby przekonwertować kolumnę tekstową na wielkie litery (i zmienić jej nazwę).

    Python

    display(df.selectExpr("Count", "upper(County) as big_name"))
    

    Skala

    display(df.selectExpr("Count", "upper(County) as big_name"))
    

    R

    display(df_selected <- selectExpr(df, "Count", "upper(County) as big_name"))
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Używanie expr() do używania składni SQL dla kolumny

Dowiedz się, jak importować i używać funkcji platformy Apache Spark expr() do używania składni SQL w dowolnym miejscu, w jakim zostanie określona kolumna.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod importuje funkcję expr(), a następnie używa funkcji apache Spark expr() i wyrażenia lower SQL, aby przekonwertować kolumnę ciągu na małe litery (i zmienić nazwę kolumny).

    Python

    from pyspark.sql.functions import expr
    display(df.select("Count", expr("lower(County) as little_name")))
    

    Skala

    import org.apache.spark.sql.functions.{col, expr}
    // Scala requires us to import the col() function as well as the expr() function
    
    display(df.select(col("Count"), expr("lower(County) as little_name")))
    

    R

    display(df_selected <- selectExpr(df, "Count", "lower(County) as little_name"))
    # expr() function is not supported in R, selectExpr in SparkR replicates this functionality
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Uruchamianie dowolnego zapytania SQL przy użyciu funkcji spark.sql()

Dowiedz się, jak używać funkcji Apache Spark spark.sql() do uruchamiania dowolnych zapytań SQL.

  1. Skopiuj i wklej następujący kod do pustej komórki notesu. Ten kod używa funkcji platformy Apache Spark spark.sql() do wykonywania zapytań dotyczących tabeli SQL przy użyciu składni JĘZYKA SQL.

    Python

    display(spark.sql(f"SELECT * FROM {path_table}.{table_name}"))
    

    Skala

    display(spark.sql(s"SELECT * FROM $pathTable.$tableName"))
    

    R

    display(sql(paste("SELECT * FROM", path_table, ".", table_name)))
    
  2. Naciśnij , Shift+Enter aby uruchomić komórkę, a następnie przejdź do następnej komórki.

Notatniki instrukcji DataFrame

Poniższe notesy zawierają przykłady zapytań z tego samouczka.

Python

Samouczek dotyczący ramek danych przy użyciu języka Python

Weź notes

Skala

Samouczek dotyczący ramek danych przy użyciu języka Scala

Weź notes

R

Samouczek dotyczący ramek danych przy użyciu języka R

Weź notes

Dodatkowe zasoby