Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Classe de base pour les sources de données.
Cette classe représente une source de données personnalisée qui permet la lecture et/ou l’écriture dans celle-ci. La source de données fournit des méthodes pour créer des lecteurs et des enregistreurs pour lire et écrire des données, respectivement. Au moins une des méthodes reader() ou writer() doit être implémentée par n’importe quelle sous-classe pour rendre la source de données lisible ou accessible en écriture (ou les deux).
Après avoir implémenté cette interface, vous pouvez charger votre source de données en utilisant spark.read.format(...).load() et enregistrer des données à l’aide df.write.format(...).save()de .
Syntaxe
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
Paramètres
| Paramètre | Type | Description |
|---|---|---|
options |
dictionnaire | Dictionnaire ne respectant pas la casse représentant les options de cette source de données. |
Méthodes
| Méthode | Description |
|---|---|
name() |
Retourne une chaîne représentant le nom de format de cette source de données. Par défaut, retourne le nom de la classe. Remplacez pour fournir un nom court personnalisé. |
schema() |
Retourne le schéma de la source de données sous forme de StructType chaîne ou DDL. S’il n’est pas implémenté et qu’aucun schéma n’est fourni par l’utilisateur, une exception est levée. |
reader(schema) |
Retourne une DataSourceReader instance pour lire des données. Obligatoire pour les sources de données lisibles. |
writer(schema, overwrite) |
Retourne une instance permettant d’écrire DataSourceWriter des données. Obligatoire pour les sources de données accessibles en écriture. |
streamWriter(schema, overwrite) |
Retourne une instance permettant d’écrire DataSourceStreamWriter des données dans un récepteur de streaming. Obligatoire pour les sources de données de diffusion en continu accessibles en écriture. |
simpleStreamReader(schema) |
Retourne une SimpleDataSourceStreamReader instance pour lire les données de streaming. Utilisé uniquement lorsqu’il streamReader() n’est pas implémenté. |
streamReader(schema) |
Retourne une DataSourceStreamReader instance pour lire les données de streaming. Prend la priorité sur simpleStreamReader(). |
Exemples
Définissez et inscrivez une source de données lisible personnalisée :
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()
Définissez une source de données avec un StructType schéma :
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
class MyDataSource(DataSource):
def schema(self):
return StructType().add("a", "int").add("b", "string")