Bestanden opnemen vanuit Google Drive

Belangrijk

Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks-previews beheren.

:::opmerking Naleving

De Google Drive-connector biedt ondersteuning voor gebruik in werkruimten, waarbij verbeterde beveiligings- en nalevingsinstellingen zijn ingeschakeld.

:::

Met de standaard Google Drive-connector in Lakeflow Connect kunt u Azure Databricks Spark- en SQL-functies (read_files, spark.read, COPY INTO en Auto Loader) gebruiken om Spark-gegevensframes, gerealiseerde weergaven en streamingtabellen rechtstreeks vanuit bestanden in Google Drive te maken.

Met deze methode kunt u aangepaste pijplijnen maken voor veelvoorkomende gebruiksscenario's voor bestandsopname:

  • Opname van streamingbestanden (ongestructureerd): het opnemen van veel bronbestanden (bijvoorbeeld PDF's, Google Docs en Google Dia's) in één doeltabel als binaire gegevens, ideaal voor RAG-pijplijnen.
  • Opname van streamingbestanden (gestructureerd): veel bronbestanden (bijvoorbeeld CSV- en JSON-bestanden) samenvoegen tot één gestructureerde doeltabel.
  • Batchbestandsopname: het opnemen van één specifiek bestand (zoals een Google Sheet) of een batch met bestanden in één doeltabel.

Deze interfaces worden ondersteund:

  • Declaratieve automatiseringsbundels
  • Databricks API's
  • Databricks SDK's
  • Databricks-CLI

Beperkingen

  • De connector is alleen API en biedt geen ondersteuning voor het maken van pijplijnen in de gebruikersinterface van Azure Databricks.
  • U kunt de pathGlobFilter optie gebruiken om bestanden op naam te filteren (bijvoorbeeld pathGlobFilter => '*.csv'). Ingebouwde Google-indelingen (bijvoorbeeld Google Docs of Google Sheets) kunnen niet worden gefilterd met deze optie. Filteren van mappaden wordt ook niet ondersteund.
  • Niet-ondersteunde indelingen zijn Google Forms, Google Sites, Google Jams en Google Vids. Tijdens het opnameproces worden niet-ondersteunde indelingen overgeslagen.
  • Instelling recursiveFileLookup=false wordt niet ondersteund voor leesbewerkingen in Spark-batches. Het gebruik recursiveFileLookup=false gedraagt zich hetzelfde als recursiveFileLookup=true.

Requirements

Controleer voordat u begint of u het volgende hebt:

  • Een werkruimte waarvoor Unity Catalog is ingeschakeld.
  • CREATE CONNECTION bevoegdheden voor het maken van een Google Drive-verbinding of de juiste bevoegdheid om een bestaande verbinding te gebruiken op basis van de toegangsmodus van uw cluster:
    • Toegewezen toegangsmodus: MANAGE CONNECTION.
    • Standaardtoegangsmodus: USE CONNECTION.
  • Databricks Runtime 17.3 of hoger.
  • Een bèta-functie voor de Excel-bestandsindeling is ingeschakeld als u Google Sheets- of Excel-bestanden wilt importeren. Zie Read Excel files.
  • Een Google-account met de benodigde machtigingen om een Google Cloud-project te maken.

OAuth 2.0 configureren

Een Google Cloud-project instellen en de Google Drive-API inschakelen

  1. Ga naar de Google Cloud-console.
  2. Maak een nieuw project. Mogelijk wordt u gevraagd om tweeledige verificatie in te stellen.
  3. Ga naar APIs & Services-bibliotheek.
  4. Zoek naar 'Google Drive-API'.
  5. Selecteer Google Drive-API.
  6. Selecteer Inschakelen.
  1. Ga in het beginscherm van de Google Cloud-console naar API's & Services > OAuth Consent Screen. U ziet een bericht met de tekst 'Google Auth Platform is nog niet geconfigureerd'.
  2. Selecteer Aan de slag.
  3. Vul de sectie App-gegevens in. Voer een willekeurige naam in voor de app-naam (bijvoorbeeld Databricks connection). De ondersteunings-e-mail kan elk e-mailbericht in uw organisatie zijn.
  4. Kies Volgende.
  5. In de sectie Doelgroep, selecteer Extern en selecteer vervolgens Volgende.
  6. Vul de sectie Contactgegevens in en selecteer Vervolgens.
  7. Controleer het beleid voor gebruikersgegevens van Google API-services en selecteer Maken.
  8. Ga terug naar Google Auth Platform > Data Access.
  9. Selecteer Bereiken toevoegen of verwijderen.
  10. Voeg het volgende bereik toe in de sectie Bereiken handmatig toevoegen , selecteer Toevoegen aan tabel en selecteer Vervolgens Bijwerken: https://www.googleapis.com/auth/drive.readonly
  11. Selecteer Opslaan.

OAuth 2.0-clientreferenties maken

  1. Ga in het startscherm van de Google Cloud-console naar API's en Services >-referenties.
  2. Selecteer Referenties maken>OAuth-client-ID.
  3. Kies Webtoepassing en stel een aangepaste naam in.
  4. Selecteer URI toevoegen in geautoriseerde omleidings-URI's.
  5. Voeg een omleidings-URI toe aan <databricks-instance-url>/login/oauth/google.html, waarbij u <databricks-instance-url> vervangt door de URL van uw Azure Databricks-exemplaar. Bijvoorbeeld: https://instance-name.databricks.com/login/oauth/google.html
  6. Klik op Creëren. Er wordt een dialoogvenster met uw referenties weergegeven.
  7. Noteer de volgende waarden. U kunt ook het JSON-bestand van de OAuth-client downloaden, dat deze informatie bevat:
    • Client-ID (indeling: 0123******-********************************.apps.googleusercontent.com)
    • Clientgeheim (indeling: ABCD**-****************************)

Testgebruikers toevoegen aan uw project

  1. Ga naar Google Auth Platform > Audience.
  2. Selecteer Onder Testgebruikers de optie Gebruikers toevoegen.
  3. Voeg het e-mailadres van het Google-account toe dat u gebruikt om de verbinding te maken.

Een verbinding maken

  1. Selecteer in de Azure Databricks-werkruimte Catalogus > Externe locaties > Verbindingen > Verbinding maken.

  2. Geef op de pagina Basisbeginselen van de wizard Verbinding instellen een unieke verbindingsnaam op.

  3. Zoek en selecteer Google Drive in het vervolgkeuzemenu Verbindingstype.

  4. (Optioneel) Voeg een opmerking toe.

  5. Kies Volgende.

  6. Voer op de pagina Verificatie het volgende in:

  7. Selecteer Aanmelden met Google en meld u aan met het Google-account van Testgebruikers toevoegen aan uw project.

  8. Selecteer Doorgaan en selecteer Opnieuw doorgaan .

  9. Nadat u bent omgeleid naar de Azure Databricks werkruimte, selecteert u Verbinding maken.

Bestanden opnemen vanuit Google Drive

Bestanden opnemen van Google Drive met behulp van de connector en read_files (Databricks SQL), Auto Loader (.readStream met cloudFiles), COPY INTO, en spark.read. U moet de volgende waarden opgeven:

  • De URL van Google Drive als pad.
  • De Unity Catalog-verbinding via de databricks.connection gegevensbronoptie.
  • De URL van de Google Drive-resource die u wilt openen. De URL kan verwijzen naar een specifiek bestand, een map of een volledige schijf. Bijvoorbeeld:
    • 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/

Google Drive-bestanden streamen met automatische laadprogramma's

Auto Loader is de meest efficiënte manier om gestructureerde bestanden incrementeel op te nemen vanuit Google Drive. Er worden automatisch nieuwe bestanden gedetecteerd en verwerkt deze zodra ze binnenkomen. Het kan ook gestructureerde en semi-gestructureerde bestanden zoals CSV en JSON opnemen met automatische schemadeductie en evolutie. Zie Algemene patronen voor het laden van gegevens voor meer informatie over het gebruik van automatisch laadprogramma's.

# 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 a 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("pathGlobFilter", "*.csv")
    .option("inferColumnTypes", True)
    .option("header", True)
    .load("https://drive.google.com/drive/folders/1a2b3c4d...")
)

Google Drive-bestanden lezen met Spark batch read

In het volgende voorbeeld ziet u hoe u Google Drive-bestanden opneemt in Python met behulp van de functie spark.read. Zie Algemene bestandsbronopties in de Apache Spark-documentatie voor een lijst met ondersteunde bestandsindelingen en opties voor Spark-lezer.

Instelling recursiveFileLookup=false wordt niet ondersteund voor leesbewerkingen in Spark-batches. Het gebruik recursiveFileLookup=false gedraagt zich hetzelfde als 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..."))

Eén gestructureerd Google Drive-bestand lezen

In het volgende voorbeeld wordt één tabblad van een Google Sheet gelezen en geladen in een DataFrame. Het toont een aantal algemene parseringsopties.

Zie Gelezen Excel bestanden voor een volledige lijst met ondersteunde parseeropties voor Excel bestanden en Google Spreadsheets. Zie Algemene opties voor bestandsbronnen in de Apache Spark-documentatie voor een volledige lijst met alle andere ondersteunde bestandsindelingen en opties voor Spark-lezer.

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..."))

Google Drive-bestanden lezen met Spark SQL

In het volgende voorbeeld ziet u hoe u Google Drive-bestanden in SQL opneemt met behulp van de read_files functie met tabelwaarde. Zie de tabelwaardige functie voor meer informatie over het gebruik van read_filesread_files.

-- 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"
);

Google Drive-bestanden opnemen met declaratieve pijplijnen van Lakeflow Spark

Opmerking

Voor de Google Drive-connector is Databricks Runtime 17.3 of hoger vereist. Als u de connector wilt gebruiken, stelt u "CHANNEL" = "PREVIEW" in uw pijplijninstellingen in. Zie De referentie voor pijplijneigenschappen voor meer informatie over previews.

In deze voorbeelden ziet u hoe u Google Drive-bestanden kunt lezen met behulp van autolaadprogramma's in Lakeflow Spark-declaratieve pijplijnen. Zie Lakeflow Spark-declaratieve pijplijnen voor meer informatie

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("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..."))

Ongestructureerde bestanden parseren met ai_parse_document

Wanneer u ongestructureerde bestanden uit Google Drive (zoals PDF's, Word documenten of PowerPoint bestanden) opneemt met behulp van de standaard Google Drive-connector met binaryFile-indeling, worden de bestandsinhoud opgeslagen als onbewerkte binaire gegevens. Als u deze bestanden wilt voorbereiden voor AI-workloads, zoals RAG, zoeken, classificatie of documentbegrip, kunt u de binaire inhoud parseren in gestructureerde, doorzoekbare uitvoer met behulp van ai_parse_document.

In het volgende voorbeeld ziet u hoe u ongestructureerde documenten kunt parseren die zijn opgeslagen in een bronzen Delta-tabel met de naam documents, waarbij een nieuwe kolom met geparseerde inhoud wordt toegevoegd:

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) AS parsed_content
FROM documents;

De parsed_content kolom bevat geëxtraheerde tekst, tabellen, indelingsgegevens en metagegevens die rechtstreeks kunnen worden gebruikt voor downstream AI-pijplijnen.

Incrementeel parseren met Lakeflow Spark-declaratieve pijplijnen

U kunt ook declaratieve pijplijnen van Lakeflow Spark gebruiken ai_parse_document om incrementele parsering in te schakelen. Nieuwe bestanden die vanuit Google Drive worden gestreamd, worden automatisch verwerkt zodra uw pijplijn wordt bijgewerkt.

U kunt bijvoorbeeld een gerealiseerde weergave definiëren waarmee nieuw opgenomen documenten continu worden geparseerd:

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 MATERIALIZED VIEW documents_parsed
AS
SELECT *, ai_parse_document(content) AS parsed_content
FROM documents;

Deze aanpak zorgt ervoor dat:

  • Nieuw opgenomen Google Drive-bestanden worden automatisch geparseerd wanneer de gerealiseerde weergave wordt vernieuwd
  • Geparseerde uitvoer blijft gesynchroniseerd met binnenkomende gegevens
  • Downstream AI-pijplijnen werken altijd met actuele documentweergaven

Zie de functie voor ondersteunde indelingen en geavanceerde optiesai_parse_document.

Hoe ingebouwde Google-indelingen worden verwerkt

U hoeft uw ingebouwde Google-bestanden (Docs, Sheets) niet handmatig te exporteren. De connector exporteert deze automatisch naar een open indeling tijdens de opname.

Google-indeling Geëxporteerd als (standaard)
Google Docs application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX)
Google Sheets application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX)
Google Dia's application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX)
Google Tekeningen application/pdf (PDF)

Configuratie van exportindeling van Google Drive

U kunt configureren hoe systeemeigen Google Drive-bestanden worden geëxporteerd door Spark-configuraties in te stellen met behulp van spark.conf.set(). Deze configuraties bepalen het type dat wordt gebruikt bij het MIME exporteren van Google Docs, Spreadsheets, Dia's en Tekeningen.

Configuratiesleutels:

  • fs.gdrive.format.document.export: Exportindeling van Google Docs.
  • fs.gdrive.format.spreadsheet.export: Exportindeling van Google Sheets.
  • fs.gdrive.format.presentation.export: Exportindeling van Google Presentaties.
  • fs.gdrive.format.drawing.export: Google Drawings-exportformaat.

Zie Mime-typen exporteren voor Google Workspace-documenten in de documentatie van Google Workspace voor een volledige lijst met ondersteunde exportindelingen.

In het volgende voorbeeld wordt een Google Docs-bestand geëxporteerd als TXT.

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

In het volgende voorbeeld wordt een Google Sheets-bestand geëxporteerd als 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

binaire-bestandsindeling

Wanneer u deze gebruikt format => 'binaryFile', heeft de resulterende tabel het volgende schema:

  • path (tekenreeks): De volledige URL naar het bestand.
  • modificationTime (tijdstempel): De laatste wijzigingstijd van het bestand.
  • length (lang): De grootte van het bestand in bytes.
  • content (binair): De onbewerkte binaire inhoud van het bestand.

_metadata kolom

U kunt metagegevensgegevens ophalen voor invoerbestanden met de _metadata kolom, zoals file_name, file_pathen file_sizefile_modification_time. De _metadata kolom is een verborgen kolom en is beschikbaar voor alle invoerbestandsindelingen. Als u de _metadata kolom in het geretourneerde DataFrame wilt opnemen, moet u deze expliciet selecteren in de leesquery waarin u de bron opgeeft. Zie kolom met metagegevens van bestandvoor meer informatie.

Voor systeemeigen Google Drive-bestanden (zoals Google Docs, Google Sheets en Google Dia's) verwijst het file_size veld naar de grootte van het bestand dat is opgeslagen op Google Drive, niet naar de grootte van het bestand in de geëxporteerde indeling (bijvoorbeeld DOCX, XLSX of PPTX).

Voorbeeld van het selecteren _metadata:

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

Kolom metagegevens van Google Drive

Belangrijk

Deze functie bevindt zich in Private Preview. Neem contact op met uw Azure Databricks-contactpersoon om het te proberen.

De _gdrive_metadata kolom is een verborgen kolom met metagegevens die toegang biedt tot google Drive-specifieke eigenschappen van opgenomen bestanden, afkomstig van de Google Drive-resourcefiles. Hiervoor is Databricks Runtime 18.1 of hoger vereist en is beschikbaar voor alle bestandsindelingen bij het lezen vanuit Google Drive. Als u de _gdrive_metadata kolom in het geretourneerde DataFrame wilt opnemen, moet u deze expliciet selecteren in de leesquery.

Als de gegevensbron een kolom met de naam _gdrive_metadatabevat, wordt de naam van de kolom metagegevens van Google Drive gewijzigd in __gdrive_metadata (met een extra voorlooponderstrepingsteken) om te ontdubbelen. Er worden extra onderstrepingstekens toegevoegd totdat de naam uniek is.

Algemene bestandsmetagegevens, zoals het bestandspad of de grootte, kunnen worden opgevraagd met behulp van de _metadata kolom. Zie kolom met metagegevens van bestandvoor meer informatie.

Schema

De _gdrive_metadata kolom is een STRUCT en bevat de volgende velden. Alle velden zijn null-baar.

Naam Typ Description Voorbeeld Minimale release van Databricks Runtime
ID STRING De Google Drive-bestands-id . 1pCzwOApmvUJCtXtav265-i4E7mYf2feF 18.1
drive_id STRING De ID van de gedeelde schijf die het bestand bevat. null voor bestanden in de Mijn Drive van een gebruiker. 0ABpL6n51HPGXUk9PVA 18.1
parent_id STRING De ID van de oudermap van het bestand. Google Drive-bestanden kunnen meerdere ouders hebben; dit retourneert de eerste. 1a2b3c4d5e6f7g8h9i0j 18.1
web_url STRING De browser-URL van het bestand op Google Drive. https://drive.google.com/file/d/1pCzwOApmvUJCtXtav265-i4E7mYf2feF/view 18.1
mime_type STRING Het MIME-type van het bestand. Voor Google Workspace-bestanden is dit het systeemeigen Google-type (bijvoorbeeld application/vnd.google-apps.document), niet het geëxporteerde type. text/csv 18.1
md5_checksum STRING De MD5-controlesom van de inhoud van het bestand. Alleen ingevuld voor binaire bestanden; null voor Google Workspace-bestanden. 06ffb3e392fc5459e5322aad81b4f78b 18.1
version STRING Een monotonisch toenemend versienummer voor het bestand. 12 18.1
created_timestamp TIMESTAMP Het tijdstip waarop het bestand is gemaakt. 2025-12-01 10:16:19 18.1
last_modified_by_email STRING Het e-mailadres van de gebruiker die het bestand het laatst heeft gewijzigd. alice@example.com 18.1
laatst_aangepast_door_naam STRING De weergavenaam van de gebruiker die het bestand het laatst heeft gewijzigd. Alice Example 18.1
gedeelde BOOLEAN Of het bestand is gedeeld met andere gebruikers dan de eigenaar. true 18.1
eigenschappen VARIANT Aangepaste openbare eigenschappen die zijn ingesteld op het bestand. Zie Eigenschappen in de Drive-API. {"department":"finance"} 18.1
additional_metadata VARIANT Alle andere bestandsresourcevelden die worden geretourneerd door de Drive-API, maar die hierboven niet zijn geëxtraheerd. {"capabilities":{"canEdit":true},...} 18.1

Opmerking

De properties velden en additional_metadata velden worden geretourneerd als VARIANT. Zie VARIANT type.

Voorbeelden

In de volgende voorbeelden ziet u hoe u de _gdrive_metadata kolom in een leesquery opneemt, specifieke velden in de kolom selecteert en waarden uit VARIANT velden ophaalt.

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"
);

Selecteer specifieke velden in de _gdrive_metadata struct:

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

Waarden extraheren uit de properties of additional_metadataVARIANT velden met behulp van de :: cast-operator:

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"
);

Veelgestelde vragen

Ik heb een map met meerdere gestructureerde bestanden (bijvoorbeeld meerdere Google Sheets). Hoe laad ik elk blad of bestand als een eigen Delta-tabel?

U moet een nieuwe opnamequery maken voor elk bestand dat moet worden opgenomen in een eigen Delta-tabel.

Voor mijn bestanden is aangepaste parsering vereist. Hoe geef ik deze parseringsparameters op om ervoor te zorgen dat mijn bestanden correct worden gelezen?

De connector ondersteunt alle bestandsindelingsopties die beschikbaar zijn in Automatisch laden, COPY INTOen Spark. Zie het volgende voor meer informatie:

Worden bestanden in submappen recursief opgenomen?

Wanneer u automatische laadlaad-API's (spark.readStream en read_files) gebruikt, worden alle submappen recursief gedetecteerd en opgenomen. Dit geldt ook voor batch spark.read, waarbij bestanden in het opgegeven mappad altijd recursief worden gelezen.

Mijn Google Sheet heeft veel onregelmatigheden en vereist specifieke parsering en celbereikextractie (bijvoorbeeld meerdere tabellen per vel). Het schema kan niet automatisch worden afgeleid. Hoe kan ik dit afhandelen?

U kunt Excel parseeropties voor bestandsindelingen gebruiken om uw Google-bladbestand te parseren naar de gewenste indeling. Zie Read Excel files.

U kunt ook schemadeductie uitschakelen voor AutoLoader, PySpark of read_files. De resulterende tabel bevat standaardkolomnamen, alle gegevenstypen worden naar een string gecast en de tabel kan schaars zijn. Vervolgens kunt u alle benodigde transformaties downstream uitvoeren.

Volgende stappen