Pobieranie plików z dysku Google

:::uwaga Zgodność

Google Drive Connector obsługuje użycie w przestrzeniach roboczych, które mają włączone ustawienia Konfigurowanie zwiększonego bezpieczeństwa i zgodności.

:::

Standardowy łącznik Google Drive w Lakeflow Connect umożliwia użycie funkcji Azure Databricks Spark i SQL (read_files, spark.read, COPY INTO i Auto Loader) do tworzenia ramek danych Spark, zmaterializowanych widoków i tabel przesyłania strumieniowego bezpośrednio z plików w Google Drive.

Dzięki temu podejściu można tworzyć niestandardowe potoki dla typowych przypadków użycia importowania plików.

  • Pozyskiwanie plików przesyłanych strumieniowo (bez struktury): pozyskiwanie wielu plików źródłowych (na przykład plików PDF, Google Docs i Google Slides) w jedną tabelę docelową jako dane binarne, idealne dla potoków RAG.
  • Pozyskiwanie plików przesyłanych strumieniowo (ze strukturą): scalanie wielu plików źródłowych (na przykład plików CSV i JSON) w jedną ustrukturyzowaną tabelę docelową.
  • Wsadowe ładowanie plików: Ładowanie pojedynczego, określonego pliku (np. Arkusza Google) lub partii plików do jednej tabeli docelowej.

Te interfejsy są obsługiwane:

  • Pakiety automatyzacji deklaratywnej
  • Interfejsy API usługi Databricks
  • Zestawy SDK usługi Databricks
  • Interfejs CLI usługi Databricks

Wybierz konektor Google Drive

Lakeflow Connect udostępnia dwa konektory Google Drive. Obaj uzyskują dostęp do danych w usłudze Google Drive, ale różnią się poziomem zarządzania.

Connector Opis
Łącznik do zarządzanego Dysku Google W pełni zarządzany łącznik. Prosty, niewymagający konserwacji łącznik do aplikacji korporacyjnych, który ładuje dane do tabel Delta i utrzymuje ich synchronizację ze źródłem.
Standardowy konektor Google Drive Twórz niestandardowe potoki ingestii danych przy użyciu SQL, PySpark lub potoków Lakeflow, korzystając z interfejsów API do przetwarzania wsadowego i strumieniowego, takich jak read_files, spark.read, COPY INTO i Auto Loader. Zapewnia elastyczność wykonywania złożonych przekształceń podczas ingestii, jednocześnie przekazując większą odpowiedzialność za zarządzanie potokami i ich konserwację.

Ograniczenia

  • Łącznik jest dostępny tylko poprzez interfejs API i nie obsługuje tworzenia potoków w interfejsie użytkownika Azure Databricks.
  • Możesz użyć pathGlobFilter opcji , aby filtrować pliki według nazwy (na przykład pathGlobFilter => '*.csv'). Wbudowane formaty Google (na przykład Google Docs lub Google Sheets) nie mogą być filtrowane przy użyciu tej opcji. Filtrowanie ścieżek folderów nie jest również obsługiwane.
  • Nieobsługiwane formaty to Google Forms, Witryny Google, Google Jams i Google Vids. Proces pozyskiwania pomija nieobsługiwane formaty.
  • Ustawienie recursiveFileLookup=false nie jest obsługiwane dla wsadowego odczytu Spark. Użycie recursiveFileLookup=false będzie zachowywać się tak samo jak recursiveFileLookup=true.

Requirements

Przed rozpoczęciem sprawdź, czy masz:

  • Obszar roboczy z włączoną obsługą Unity Catalog.
  • CREATE CONNECTION uprawnienia do utworzenia połączenia z Dyskiem Google lub odpowiednie uprawnienia do używania istniejącego w zależności od trybu dostępu klastra:
    • Tryb dedykowanego dostępu: MANAGE CONNECTION.
    • Standardowy tryb dostępu: USE CONNECTION.
  • Databricks Runtime 17.3 lub nowszy.
  • Konto Google z uprawnieniami niezbędnymi do utworzenia projektu Google Cloud.

Konfigurowanie protokołu OAuth 2.0

Konfigurowanie projektu Google Cloud i włączanie interfejsu API dysku Google

  1. Przejdź do konsoli Google Cloud.
  2. Utwórz nowy projekt. Może zostać wyświetlony monit o skonfigurowanie uwierzytelniania dwuskładnikowego.
  3. Przejdź do Biblioteki Interfejsów API i Usług>.
  4. Wyszukaj "Google Drive API".
  5. Wybierz API Google Drive.
  6. Wybierz opcję Włącz.
  1. Na ekranie głównym konsoli Google Cloud przejdź do pozycji Interfejsy API i usługi > Ekran zgody OAuth. Zostanie wyświetlony komunikat "Platforma uwierzytelniania Google nie została jeszcze skonfigurowana".
  2. Wybierz Rozpocznij.
  3. Wypełnij sekcję Informacje o aplikacji . Wprowadź dowolną nazwę aplikacji (na przykład Databricks connection). Adres e-mail pomocy może być dowolnym adresem e-mail w organizacji.
  4. Wybierz Dalej.
  5. W sekcji Odbiorcy wybierz grupę odbiorców, a następnie wybierz Następny:
    • Wewnętrzna: Wybierz tę opcję, jeśli aplikacja jest używana tylko przez osoby z organizacji Google Workspace, a polityka Google Workspace pozwala na aplikacje wewnętrzne.
    • Zewnętrznie: Wybierz tę opcję, jeśli aplikacja jest używana przez osoby spoza Twojej organizacji Google Workspace.
  6. Wypełnij sekcję Informacje kontaktowe , a następnie wybierz pozycję Dalej.
  7. Przejrzyj zasady danych użytkownika usług Google API Services, a następnie wybierz pozycję Utwórz.
  8. Wróć do usługi Google Auth Platform > Data Access.
  9. Wybierz pozycję Dodaj lub usuń zakresy.
  10. Dodaj następujący zakres w sekcji Ręczne dodawanie zakresów , wybierz pozycję Dodaj do tabeli, a następnie wybierz pozycję Aktualizuj: https://www.googleapis.com/auth/drive.readonly
  11. Wybierz opcję Zapisz.

Tworzenie poświadczeń klienta protokołu OAuth 2.0

  1. Na ekranie głównym konsoli Google Cloud przejdź do pozycji Interfejsy API i poświadczenia usług>.
  2. Wybierz Utwórz poświadczenia>OAuth Client ID.
  3. Wybierz pozycję Aplikacja internetowa i ustaw nazwę niestandardową.
  4. W obszarze Autoryzowane identyfikatory URI przekierowania wybierz pozycję Dodaj identyfikator URI.
  5. Dodaj identyfikator URI przekierowania do <databricks-instance-url>/login/oauth/google.html, zastępując <databricks-instance-url> adresem URL wystąpienia Azure Databricks. Przykład: https://instance-name.databricks.com/login/oauth/google.html
  6. Wybierz Utwórz. Pojawi się okno dialogowe z Twoimi poświadczeniami.
  7. Zapisz następujące wartości. Alternatywnie możesz pobrać plik JSON klienta OAuth, który zawiera następujące informacje:
    • Identyfikator klienta (format: 0123******-********************************.apps.googleusercontent.com)
    • Klucz tajny klienta (format: ABCD**-****************************)

Dodaj użytkowników testowych dla aplikacji zewnętrznej

Jeśli wybrałeś Zewnętrzną, dodaj konto Google, którego używasz do tworzenia połączenia jako użytkownik testowy. Jeśli wybrałeś Wewnętrzne, pomiń ten krok.

  1. Przejdź do >.
  2. W obszarze Użytkownicy testowi wybierz pozycję Dodaj użytkowników.
  3. Dodaj adres e-mail konta Google, którego użyjesz do utworzenia połączenia.

Tworzenie połączenia

  1. W obszarze roboczym Azure Databricks wybierz pozycję Catalog > Lokalizacje zewnętrzne > Połączenia > Utwórz połączenie.

  2. Na stronie Podstawowe informacje o połączeniu w kreatorze Konfigurowanie połączenia określ unikatową nazwę połączenia.

  3. W menu rozwijanym Typ połączenia wyszukaj i wybierz pozycję Dysk Google.

  4. (Opcjonalnie) Dodaj komentarz.

  5. Wybierz Dalej.

  6. Na stronie Uwierzytelnianie wprowadź następujące informacje:

  7. Wybierz Zaloguj się przez Google i zaloguj się na konto Google, które może korzystać z aplikacji.

  8. Wybierz pozycję Kontynuuj, a następnie ponownie wybierz pozycję Kontynuuj .

  9. Po przekierowaniu z powrotem do obszaru roboczego Azure Databricks wybierz pozycję Utwórz połączenie.

Pobieranie plików z Dysku Google

Pobieranie plików z Google Drive przy użyciu łącznika i read_files (Databricks SQL), Automatycznego Modułu Ładującego (.readStream z cloudFiles), COPY INTO i spark.read. Musisz podać następujące wartości:

  • Adres URL do Google Drive jako ścieżka.
  • Połączenie z Unity Catalog przy użyciu opcji źródła danych databricks.connection.
  • Adres URL zasobu Dysku Google, do którego chcesz uzyskać dostęp. Adres URL może odwoływać się do określonego pliku, folderu lub całego dysku. Przykład:
    • https://docs.google.com/spreadsheets/d/12345/edit?random_query_params_here
    • https://drive.google.com/drive/u/0/folders/12345
    • https://docs.google.com/document/d/12345/edit
    • https://drive.google.com/file/d/1kiXnHmU4Y8X66ijULky5EPDNCGtT14Ps/view?usp=drive_link
    • https://drive.google.com/drive/
    • https://drive.google.com/drive/my-drive
    • https://drive.google.com/

Przesyłanie strumieniowe plików dysku Google przy użyciu automatycznego modułu ładującego

Auto Loader to najbardziej wydajny sposób na przyrostowe pozyskiwanie ustrukturyzowanych plików z Google Drive. Automatycznie wykrywa nowe pliki i przetwarza je po ich nadejściu. Może również pozyskiwać pliki ustrukturyzowane i częściowo ustrukturyzowane, takie jak CSV i JSON, z automatycznym wnioskowaniem i ewolucją schematu. Aby uzyskać szczegółowe informacje na temat użycia automatycznego modułu ładującego, zobacz Typowe wzorce ładowania danych.

# Incrementally ingest new PDF files
df = (spark.readStream.format("cloudFiles")
    .option("cloudFiles.format", "binaryFile")
    .option("databricks.connection", "my_gdrive_conn")
    .option("cloudFiles.schemaLocation", "<path-to-schema-location>")
    .option("pathGlobFilter", "*.pdf")
    .load("https://drive.google.com/drive/folders/1a2b3c4d...")
    .select("*", "_metadata")
)

# Incrementally ingest CSV files with automatic schema inference and evolution
df = (spark.readStream.format("cloudFiles")
    .option("cloudFiles.format", "csv")
    .option("databricks.connection", "my_gdrive_conn")
    .option("cloudFiles.schemaLocation", "<path-to-schema-location>")
    .option("pathGlobFilter", "*.csv")
    .option("cloudFiles.inferColumnTypes", True)
    .option("header", True)
    .load("https://drive.google.com/drive/folders/1a2b3c4d...")
)

Odczytywanie plików dysku Google przy użyciu odczytu wsadowego platformy Spark

W poniższym przykładzie pokazano, jak pozyskiwać pliki z Google Drive w Pythonie przy użyciu funkcji spark.read. Aby uzyskać listę obsługiwanych formatów plików i opcji czytnika platformy Spark, zobacz Ogólne opcje źródła plików w dokumentacji platformy Apache Spark.

Ustawienie recursiveFileLookup=false nie jest obsługiwane dla wsadowego odczytu Spark. Użycie recursiveFileLookup=false będzie zachowywać się tak samo jak recursiveFileLookup=true.

# Read unstructured data as binary files
df = (spark.read
        .format("binaryFile")
        .option("databricks.connection", "my_gdrive_conn")
        .option("recursiveFileLookup", True)
        .option("pathGlobFilter", "*.pdf")
        .load("https://drive.google.com/drive/folders/1a2b3c4d..."))

# Read a batch of CSV files, infer the schema, and load the data into a DataFrame
df = (spark.read
        .format("csv")
        .option("databricks.connection", "my_gdrive_conn")
        .option("pathGlobFilter", "*.csv")
        .option("recursiveFileLookup", True)
        .option("inferSchema", True)
        .option("header", True)
        .load("https://drive.google.com/drive/folders/1a2b3c4d..."))

Odczytaj pojedynczy ustrukturyzowany plik z Dysku Google

Poniższy przykład odczytuje pojedynczą kartę arkusza Google i ładuje ją do ramki danych. Przedstawia kilka typowych opcji analizowania.

Aby uzyskać pełną listę obsługiwanych opcji analizowania plików Excel i arkuszy Google, zobacz Odczyt i przesyłanie strumieniowe plików Excel. Aby uzyskać pełną listę wszystkich innych obsługiwanych formatów plików i opcji czytnika platformy Spark, zobacz Ogólne opcje źródła plików w dokumentacji platformy Apache Spark.

df = (spark.read
  .format("excel")  # use 'excel' for Google Sheets
  .option("databricks.connection", "my_gdrive_conn")
  .option("headerRows", 1) # optional
  .option("inferColumns", True) # optional
  .option("dataAddress", "Sheet1!A1:Z10")  # optional
  .load("https://docs.google.com/spreadsheets/d/9k8j7i6f..."))

Odczytywanie plików dysku Google przy użyciu usługi Spark SQL

W poniższym przykładzie pokazano, jak pozyskiwać pliki z Google Drive w języku SQL przy użyciu read_files funkcji zwracającej tabelę. Aby uzyskać szczegółowe informacje na temat read_files użycia, zobacz read_files funkcja wartości tabeli.

-- Read pdf files
CREATE TABLE my_table AS
SELECT * FROM read_files(
  "https://drive.google.com/drive/folders/1a2b3c4d...",
  `databricks.connection` => "my_gdrive_conn",
  format => "binaryFile",
  pathGlobFilter => "*.pdf", -- optional. Example: only ingest PDFs
  schemaEvolutionMode => "none"
);

-- Read a Google Sheet and range
CREATE TABLE my_sheet_table AS
SELECT * FROM read_files(
  "https://docs.google.com/spreadsheets/d/9k8j7i6f...",
  `databricks.connection` => "my_gdrive_conn",
  format => "excel",
  headerRows => 1,  -- optional
  dataAddress => "Sheet1!A2:D10", -- optional
  schemaEvolutionMode => "none"
);

Importowanie plików z Google Drive za pomocą potoków Lakeflow

Uwaga / Notatka

Łącznik Google Drive wymaga środowiska Databricks Runtime 17.3 lub nowszego. Aby użyć łącznika, skonfiguruj "CHANNEL" = "PREVIEW" w ustawieniach potoku. Aby uzyskać więcej informacji na temat wersji zapoznawczych, zobacz Dokumentacja właściwości potoku.

Poniższe przykłady pokazują, jak czytać pliki Google Drive za pomocą Auto Loader w potokach Lakeflow. Więcej informacji można znaleźć w artykule Spark Declarative Pipelines.

SQL

-- Incrementally ingest new PDF files
CREATE OR REFRESH STREAMING TABLE gdrive_pdf_table
AS SELECT * FROM STREAM read_files(
  "https://drive.google.com/drive/folders/1a2b3c4d...",
  format => "binaryFile",
  `databricks.connection` => "my_gdrive_conn",
  pathGlobFilter => "*.pdf");

-- Incrementally ingest CSV files with automatic schema inference and evolution
CREATE OR REFRESH STREAMING TABLE gdrive_csv_table
AS SELECT * FROM STREAM read_files(
  "https://drive.google.com/drive/folders/1a2b3c4d...",
  format => "csv",
  `databricks.connection` => "my_gdrive_conn",
  pathGlobFilter => "*.csv",
  header => "true");

-- Read a specific Excel file from Google Drive in a materialized view
CREATE OR REFRESH MATERIALIZED VIEW gdrive_excel_table
AS SELECT * FROM read_files(
  "https://docs.google.com/spreadsheets/d/9k8j7i6f...",
  `databricks.connection` => "my_gdrive_conn",
  format => "excel",
  headerRows => 1,  -- optional
  dataAddress => "Sheet1!A2:D10", -- optional
  `cloudFiles.schemaEvolutionMode` => "none"
);

Python

from pyspark import pipelines as dp

# Incrementally ingest new PDF files
@dp.table
def gdrive_pdf_table():
  return (spark.readStream.format("cloudFiles")
    .option("cloudFiles.format", "binaryFile")
    .option("databricks.connection", "my_gdrive_conn")
    .option("pathGlobFilter", "*.pdf")
    .load("https://drive.google.com/drive/folders/1a2b3c4d...")
  )

# Incrementally ingest CSV files with automatic schema inference and evolution
@dp.table
def gdrive_csv_table():
  return (spark.readStream.format("cloudFiles")
      .option("cloudFiles.format", "csv")
      .option("databricks.connection", "my_gdrive_conn")
      .option("pathGlobFilter", "*.csv")
      .option("cloudFiles.inferColumnTypes", True)
      .option("header", True)
      .load("https://drive.google.com/drive/folders/1a2b3c4d...")
  )

# Read a specific Excel file from Google Drive in a materialized view
@dp.table
def gdrive_excel_table():
  return (spark.read.format("excel")
    .option("databricks.connection", "my_gdrive_conn")
    .option("headerRows", 1) # optional
    .option("inferColumnTypes", True) # optional
    .option("dataAddress", "Sheet1!A1:M20") # optional
    .load("https://docs.google.com/spreadsheets/d/9k8j7i6f..."))

Analizowanie plików bez struktury za pomocą polecenia ai_parse_document

W przypadku pobierania niestrukturalizowanych plików z Dysku Google (takich jak pliki PDF, dokumenty Word czy pliki PowerPoint) przy użyciu standardowego łącznika Dysku Google z użyciem atrybutu binaryFile, zawartość plików jest przechowywana jako nieprzetworzone dane binarne. Aby przygotować te pliki dla obciążeń sztucznej inteligencji , takich jak RAG, wyszukiwanie, klasyfikacja lub opis dokumentów, można przeanalizować zawartość binarną w ustrukturyzowanych danych wyjściowych z możliwością wykonywania zapytań przy użyciu polecenia ai_parse_document.

W poniższym przykładzie pokazano, jak analizować dokumenty bez struktury przechowywane w brązowej tabeli delty o nazwie documents, dodając nową kolumnę z analizowaną zawartością:

CREATE TABLE documents AS
SELECT *, _metadata FROM read_files(
  "https://drive.google.com/drive/folders/1a2b3c4d...",
  `databricks.connection` => "my_gdrive_conn",
  format => "binaryFile",
  pathGlobFilter => "*.{pdf,jpeg}"
);
SELECT *, ai_parse_document(content, map('version', '2.0')) AS parsed_content
FROM documents;

Kolumna parsed_content zawiera wyodrębniony tekst, tabele, informacje o układzie i metadane, które mogą być używane bezpośrednio dla podrzędnych potoków sztucznej inteligencji.

Parsowanie przyrostowe za pomocą potoków Lakeflow

Możesz również użyć ai_parse_document w potokach Lakeflow, aby włączyć parsowanie przyrostowe. Nowe pliki pobierane z Dysku Google są automatycznie analizowane w miarę aktualizacji pipeline'u.

Na przykład możesz zdefiniować brązową tabelę streamingową, która pobiera surowe pliki binarne, a następnie drugą tabelę streamingową, która umieszcza parsowane treści w nowej kolumnie:

CREATE OR REFRESH STREAMING TABLE documents
AS SELECT *, "_metadata" FROM STREAM read_files(
  "https://drive.google.com/drive/folders/1a2b3c4d...",
  format => "binaryFile",
  `databricks.connection` => "my_gdrive_conn",
  pathGlobFilter => "*.{pdf,jpeg}");

CREATE OR REFRESH STREAMING TABLE documents_parsed
AS SELECT
  *,
  ai_parse_document(content, map('version', '2.0')) AS parsed_content
FROM STREAM documents;

Takie podejście gwarantuje, że:

  • Nowo pobrane pliki Google Drive są analizowane automatycznie za każdym razem, gdy pipeline się aktualizuje.
  • Parsowane wyjścia pozostają zsynchronizowane z danymi przychodzącymi.
  • Potoki AI na dalszych etapach zawsze operują na aktualnych reprezentacjach dokumentów.

Aby uzyskać obsługiwane formaty i opcje zaawansowane, zobacz funkcję ai_parse_document.

Jak obsługiwane są wbudowane formaty Google

Nie trzeba ręcznie eksportować wbudowanych plików Google (Docs, Sheets). Łącznik automatycznie eksportuje je do otwartego formatu podczas pobierania.

Format Google Wyeksportowane jako (ustawienie domyślne)
Google Docs application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX)
Arkusze Google (Google Sheets) application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX)
Slajdy Google application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX)
Rysunki Google application/pdf (PDF)

Konfiguracja formatu eksportu Google Drive

Możesz skonfigurować sposób eksportowania plików natywnych dysku Google, ustawiając konfiguracje platformy Spark przy użyciu polecenia spark.conf.set(). Te konfiguracje określają MIME typ używany podczas eksportowania dokumentów Google, arkuszy, slajdów i rysunków.

Klucze konfiguracji:

  • fs.gdrive.format.document.export: format eksportu Google Docs.
  • fs.gdrive.format.spreadsheet.export: Format eksportu arkuszy Google.
  • fs.gdrive.format.presentation.export: Format eksportu slajdów Google.
  • fs.gdrive.format.drawing.export: Format eksportu rysunków Google.

Aby uzyskać pełną listę obsługiwanych formatów eksportu, zobacz Eksportowanie typów MIME dla dokumentów usługi Google Workspace w dokumentacji obszaru roboczego Google.

Poniższy przykład eksportuje plik Google Docs jako TXT.

spark.conf.set("fs.gdrive.format.document.export", "text/plain")
df = spark.read.text("https://docs.google.com/document/d/1a2b3c4d...")

Poniższy przykład eksportuje plik Arkuszy Google jako plik CSV.

spark.conf.set("fs.gdrive.format.spreadsheet.export", "text/csv")
df = spark.read.option("header", "true").csv("https://docs.google.com/spreadsheets/d/1a2b3c4d...")

Schemas

format pliku binaryFile

Jeśli używasz format => 'binaryFile'metody , tabela wynikowa ma następujący schemat:

  • path (ciąg): pełny adres URL do pliku.
  • modificationTime (sygnatura czasowa): czas ostatniej modyfikacji pliku.
  • length (długa): rozmiar pliku w bajtach.
  • content (binarny): nieprzetworzona zawartość binarna pliku.

kolumna _metadata

Możesz uzyskać informacje o metadanych dla plików wejściowych z kolumną _metadata , taką jak file_name, file_path, file_sizei file_modification_time. Kolumna _metadata jest ukrytą kolumną i jest dostępna dla wszystkich formatów plików wejściowych. Aby dołączyć kolumnę _metadata do zwróconej ramki danych, musisz jawnie wybrać ją w zapytaniu odczytu, w którym określono źródło. Aby uzyskać więcej informacji, zobacz Kolumna metadanych pliku.

W przypadku plików natywnych dysku Google (takich jak Google Docs, Arkusze Google i Slajdy Google) file_size pole odnosi się do rozmiaru pliku przechowywanego na dysku Google, a nie rozmiaru pliku w wyeksportowanym formacie (na przykład DOCX, XLSX lub PPTX).

Przykład zaznaczania _metadata:

SELECT *, _metadata FROM read_files(
  "https://drive.google.com/",
  `databricks.connection` => "my_connection",
  format => "binaryFile"
);

Kolumna metadanych dysku Google

Kolumna _gdrive_metadata jest ukrytą kolumną metadanych, która zapewnia dostęp do właściwości specyficznych dla dysku Google pozyskanych plików, pobranych z zasobu Dysku files Google. Wymaga to środowiska Databricks Runtime 18.1 lub nowszego i jest dostępne dla wszystkich formatów plików podczas odczytywania z dysku Google. Aby dołączyć kolumnę _gdrive_metadata do zwróconej ramki danych, musisz jawnie wybrać ją w zapytaniu odczytu.

Jeśli źródło danych zawiera kolumnę o nazwie _gdrive_metadata, nazwa kolumny metadanych dysku Google zostanie zmieniona na __gdrive_metadata (z dodatkowym wiodącym podkreśleniem) w celu deduplikacji. Dodatkowe podkreślenia są dodawane do momentu, gdy nazwa będzie unikatowa.

Typowe metadane pliku, takie jak ścieżka pliku lub rozmiar, można wykonywać zapytania przy użyciu kolumny _metadata . Aby uzyskać więcej informacji, zobacz Kolumna metadanych pliku.

Warning

Nowe pola można dodać do kolumny _gdrive_metadata w przyszłych wersjach. Aby zapobiec błędom ewolucji schematu, jeśli kolumna _gdrive_metadata jest aktualizowana, możesz wybrać określone pola z kolumny w zapytaniach. Zobacz Przykłady.

Schemat

Kolumna _gdrive_metadata to STRUCT, które zawiera następujące pola. Wszystkie pola mogą mieć wartość null.

Name Typ Opis Przykład Minimalna wersja środowiska Databricks Runtime
id STRING Identyfikator pliku dysku Google. 1pCzwOApmvUJCtXtav265-i4E7mYf2feF 18.1
drive_id STRING Identyfikator dysku udostępnionego, który zawiera plik. null w przypadku plików w obszarze Mój dysk użytkownika. 0ABpL6n51HPGXUk9PVA 18.1
parent_id STRING Identyfikator folderu nadrzędnego dla pliku. Pliki na Dysku Google mogą mieć wielu rodziców; zwraca pierwszego. 1a2b3c4d5e6f7g8h9i0j 18.1
web_url STRING Adres URL przeglądarki pliku na dysku Google. https://drive.google.com/file/d/1pCzwOApmvUJCtXtav265-i4E7mYf2feF/view 18.1
mime_type STRING Typ MIME pliku. W przypadku plików Google Workspace jest to natywny typ Google (na przykład application/vnd.google-apps.document), a nie wyeksportowany typ. text/csv 18.1
md5_checksum STRING Suma kontrolna MD5 zawartości pliku. Wypełniane tylko dla plików binarnych; null dla plików usługi Google Workspace. 06ffb3e392fc5459e5322aad81b4f78b 18.1
version STRING Monotonicznie zwiększający numer wersji pliku. 12 18.1
created_timestamp TIMESTAMP Godzina utworzenia pliku. 2025-12-01 10:16:19 18.1
ostatnio_zmieniony_przez_email STRING Adres e-mail użytkownika, który ostatnio zmodyfikował plik. alice@example.com 18.1
last_modified_by_name STRING Nazwa wyświetlana użytkownika, który ostatnio zmodyfikował plik. Alice Example 18.1
Udostępnione BOOLEAN Czy plik został udostępniony użytkownikom innym niż właściciel. true 18.1
właściwości VARIANT Niestandardowe właściwości publiczne ustawione w pliku. Zobacz Właściwości w interfejsie API dysku. {"department":"finance"} 18.1
additional_metadata VARIANT Wszystkie inne pola zasobów plików zwrócone przez API Dysku, które nie zostały wyodrębnione powyżej. {"capabilities":{"canEdit":true},...} 18.1

Uwaga / Notatka

Pola properties i additional_metadata są zwracane jako VARIANT. Zobacz VARIANT typ.

Przykłady

W poniższych przykładach pokazano, jak uwzględnić kolumnę _gdrive_metadata w zapytaniu odczytu, wybrać określone pola z kolumny i wyodrębnić wartości z VARIANT pól.

Python

df = (spark.read
  .format("binaryFile")
  .option("databricks.connection", "my_gdrive_conn")
  .load("https://drive.google.com/drive/folders/1a2b3c4d...")
  .select("*", "_metadata", "_gdrive_metadata"))

SQL

SELECT *, _gdrive_metadata
FROM read_files(
  "https://drive.google.com/drive/folders/1a2b3c4d...",
  `databricks.connection` => "my_gdrive_conn",
  format => "binaryFile"
);

Wybierz określone pola z _gdrive_metadata struktury:

df = (spark.read
  .format("binaryFile")
  .option("databricks.connection", "my_gdrive_conn")
  .load("https://drive.google.com/drive/folders/1a2b3c4d...")
  .select("_gdrive_metadata.id", "_gdrive_metadata.md5_checksum"))

Wyodrębnij wartości z pól properties lub additional_metadataVARIANT przy użyciu operatora rzutowania ::.

SELECT
  *,
  _gdrive_metadata.properties:department::STRING AS department
FROM read_files(
  "https://drive.google.com/drive/folders/1a2b3c4d...",
  `databricks.connection` => "my_gdrive_conn",
  format => "binaryFile"
);

Często zadawane pytania

Mam folder z wieloma plikami ustrukturyzowanymi (na przykład wieloma arkuszami Google). Jak załadować każdy arkusz lub plik jako własną tabelę delty?

Należy utworzyć nowe zapytanie dotyczące załadowania danych dla każdego pliku, aby załadować je do własnej tabeli Delta.

Moje pliki wymagają niestandardowego parsowania. Jak podać te parametry analizowania, aby upewnić się, że moje pliki są poprawnie odczytywane?

Łącznik obsługuje wszystkie opcje formatu pliku dostępne w narzędziu Auto Loader, COPY INTOi Spark. Aby uzyskać szczegółowe informacje, zobacz następujące elementy:

Czy pliki w podfolderach są cyklicznie pozyskiwane?

W przypadku używania interfejsów API Auto Loader (spark.readStream i read_files) wszystkie podfoldery są rekursywnie odnajdywane i pozyskiwane. Dotyczy to również partii spark.read, gdzie pliki w podanej ścieżce folderu są zawsze odczytywane rekursywnie.

Mój arkusz Google ma wiele nieregularności i wymaga określonej analizy oraz wyodrębniania zakresu komórek (na przykład wielu tabel na arkusz). Nie można automatycznie wywnioskować schematu. Jak to zrobić?

Możesz użyć opcji analizowania formatu pliku Excel, aby przekonwertować plik arkusza Google do żądanego formatu. Zobacz Odczytywanie i przesyłanie strumieniowe plików Excel.

Alternatywnie można wyłączyć wnioskowanie schematu w narzędziu Auto Loader, PySpark lub read_files. Tabela wynikowa ma domyślne nazwy kolumn, wszystkie typy danych są konwertowane na ciągi znaków, a tabela może być niepełna. Następnie można wykonać wszelkie niezbędne przekształcenia podrzędne.

Następne kroki