Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Een basisklasse voor gegevensbronnen.
Deze klasse vertegenwoordigt een aangepaste gegevensbron waarmee u gegevens kunt lezen van en/of ernaar kunt schrijven. De gegevensbron biedt methoden om respectievelijk lezers en schrijvers te maken voor het lezen en schrijven van gegevens. Ten minste één van de methoden reader() of writer() moet worden geïmplementeerd door een subklasse om de gegevensbron leesbaar of beschrijfbaar te maken (of beide).
Nadat u deze interface hebt geïmplementeerd, kunt u uw gegevensbron laden met behulp van spark.read.format(...).load() en gegevens opslaan met behulp van df.write.format(...).save().
Syntaxis
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
Parameterwaarden
| Kenmerk | Typ | Beschrijving |
|---|---|---|
options |
Woordenboek | Een niet-hoofdlettergevoelige woordenlijst die de opties voor deze gegevensbron vertegenwoordigt. |
Methods
| Methode | Beschrijving |
|---|---|
name() |
Retourneert een tekenreeks die de indelingsnaam van deze gegevensbron aangeeft. Retourneert standaard de klassenaam. Overschrijven om een aangepaste korte naam op te geven. |
schema() |
Retourneert het schema van de gegevensbron als een StructType of DDL-tekenreeks. Als dit niet is geïmplementeerd en er geen schema wordt geleverd door de gebruiker, wordt er een uitzondering gegenereerd. |
reader(schema) |
Retourneert een DataSourceReader exemplaar voor het lezen van gegevens. Vereist voor leesbare gegevensbronnen. |
writer(schema, overwrite) |
Retourneert een DataSourceWriter exemplaar voor het schrijven van gegevens. Vereist voor beschrijfbare gegevensbronnen. |
streamWriter(schema, overwrite) |
Retourneert een DataSourceStreamWriter exemplaar voor het schrijven van gegevens in een streaming-sink. Vereist voor beschrijfbare streaminggegevensbronnen. |
simpleStreamReader(schema) |
Retourneert een SimpleDataSourceStreamReader exemplaar voor het lezen van streaminggegevens. Wordt alleen gebruikt wanneer streamReader() deze niet wordt geïmplementeerd. |
streamReader(schema) |
Retourneert een DataSourceStreamReader exemplaar voor het lezen van streaminggegevens. Neemt prioriteit boven simpleStreamReader(). |
Examples
Een aangepaste leesbare gegevensbron definiëren en registreren:
from pyspark.sql.datasource import DataSource, DataSourceReader, InputPartition
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
def schema(self):
return "a INT, b STRING"
def reader(self, schema):
return MyDataSourceReader(schema)
class MyDataSourceReader(DataSourceReader):
def read(self, partition):
yield (1, "hello")
yield (2, "world")
spark.dataSource.register(MyDataSource)
df = spark.read.format("my_data_source").load()
df.show()
Een gegevensbron definiëren met een StructType schema:
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
class MyDataSource(DataSource):
def schema(self):
return StructType().add("a", "int").add("b", "string")