Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Classe di base per le origini dati.
Questa classe rappresenta un'origine dati personalizzata che consente la lettura da e/o la scrittura. L'origine dati fornisce metodi per creare rispettivamente lettori e writer per la lettura e la scrittura di dati. Almeno uno dei metodi reader() o writer() deve essere implementato da qualsiasi sottoclasse per rendere l'origine dati leggibile o scrivibile (o entrambe).
Dopo aver implementato questa interfaccia, è possibile caricare l'origine dati usando spark.read.format(...).load() e salvare i dati usando df.write.format(...).save().
Sintassi
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
options |
dizionario | Dizionario senza distinzione tra maiuscole e minuscole che rappresenta le opzioni per questa origine dati. |
Methods
| metodo | Descrizione |
|---|---|
name() |
Restituisce una stringa che rappresenta il nome del formato dell'origine dati. Per impostazione predefinita, restituisce il nome della classe. Eseguire l'override per specificare un nome breve personalizzato. |
schema() |
Restituisce lo schema dell'origine dati come StructType stringa DDL o . Se non viene implementato e non viene fornito alcuno schema dall'utente, viene generata un'eccezione. |
reader(schema) |
Restituisce un'istanza DataSourceReader per la lettura dei dati. Obbligatorio per le origini dati leggibili. |
writer(schema, overwrite) |
Restituisce un'istanza DataSourceWriter per la scrittura di dati. Obbligatorio per le origini dati scrivibili. |
streamWriter(schema, overwrite) |
Restituisce un'istanza DataSourceStreamWriter per la scrittura di dati in un sink di streaming. Obbligatorio per le origini dati di streaming scrivibili. |
simpleStreamReader(schema) |
Restituisce un'istanza SimpleDataSourceStreamReader per la lettura dei dati di streaming. Utilizzato solo quando streamReader() non viene implementato. |
streamReader(schema) |
Restituisce un'istanza DataSourceStreamReader per la lettura dei dati di streaming. Ha la priorità su simpleStreamReader(). |
Examples
Definire e registrare un'origine dati leggibile personalizzata:
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()
Definire un'origine dati con uno 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")