Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Basisklasse für Datenquellen.
Diese Klasse stellt eine benutzerdefinierte Datenquelle dar, die das Lesen und/oder Schreiben in die Datenquelle ermöglicht. Die Datenquelle stellt Methoden zum Erstellen von Lesern und Autoren zum Lesen und Schreiben von Daten bereit. Mindestens eine der Methoden reader() oder writer() muss von einer beliebigen Unterklasse implementiert werden, damit die Datenquelle entweder lesbar oder schreibbar ist (oder beides).
Nach der Implementierung dieser Schnittstelle können Sie Ihre Datenquelle mithilfe spark.read.format(...).load() von Daten laden und mit df.write.format(...).save()diesen speichern.
Syntax
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
options |
Wörterbuch | Ein Wörterbuch ohne Groß-/Kleinschreibung, das die Optionen für diese Datenquelle darstellt. |
Methodik
| Methode | Beschreibung |
|---|---|
name() |
Gibt eine Zeichenfolge zurück, die den Formatnamen dieser Datenquelle darstellt. Gibt standardmäßig den Klassennamen zurück. Überschreiben, um einen angepassten Kurznamen bereitzustellen. |
schema() |
Gibt das Schema der Datenquelle als Zeichenfolge oder DDL-Zeichenfolge StructType zurück. Wenn sie nicht implementiert ist und kein Schema vom Benutzer bereitgestellt wird, wird eine Ausnahme ausgelöst. |
reader(schema) |
Gibt eine DataSourceReader Instanz zum Lesen von Daten zurück. Erforderlich für lesbare Datenquellen. |
writer(schema, overwrite) |
Gibt eine DataSourceWriter Instanz zum Schreiben von Daten zurück. Erforderlich für schreibbare Datenquellen. |
streamWriter(schema, overwrite) |
Gibt eine DataSourceStreamWriter Instanz zum Schreiben von Daten in eine Streaming-Spüle zurück. Erforderlich für schreibbare Streamingdatenquellen. |
simpleStreamReader(schema) |
Gibt eine SimpleDataSourceStreamReader Instanz zum Lesen von Streamingdaten zurück. Wird nur verwendet, wenn streamReader() sie nicht implementiert ist. |
streamReader(schema) |
Gibt eine DataSourceStreamReader Instanz zum Lesen von Streamingdaten zurück. Übernimmt Vorrang vor simpleStreamReader(). |
Beispiele
Definieren und Registrieren einer benutzerdefinierten lesbaren Datenquelle:
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()
Definieren einer Datenquelle mit einem 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")