Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Clase base para orígenes de datos.
Esta clase representa un origen de datos personalizado que permite leer desde y/o escribir en él. El origen de datos proporciona métodos para crear lectores y escritores para leer y escribir datos, respectivamente. Al menos uno de los métodos reader() o writer() debe implementarse en cualquier subclase para que el origen de datos sea legible o grabable (o ambos).
Después de implementar esta interfaz, puede cargar el origen de datos mediante spark.read.format(...).load() y guardar datos mediante df.write.format(...).save().
Sintaxis
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
options |
diccionario | Diccionario que no distingue mayúsculas de minúsculas que representa las opciones de este origen de datos. |
Methods
| Método | Descripción |
|---|---|
name() |
Devuelve una cadena que representa el nombre de formato de este origen de datos. De forma predeterminada, devuelve el nombre de clase. Invalide para proporcionar un nombre corto personalizado. |
schema() |
Devuelve el esquema del origen de datos como una StructType cadena DDL o . Si no se implementa y el usuario no proporciona ningún esquema, se produce una excepción. |
reader(schema) |
Devuelve una DataSourceReader instancia de para leer datos. Necesario para orígenes de datos legibles. |
writer(schema, overwrite) |
Devuelve una DataSourceWriter instancia de para escribir datos. Necesario para orígenes de datos grabables. |
streamWriter(schema, overwrite) |
Devuelve una DataSourceStreamWriter instancia de para escribir datos en un receptor de streaming. Necesario para orígenes de datos de streaming grabables. |
simpleStreamReader(schema) |
Devuelve una SimpleDataSourceStreamReader instancia de para leer datos de streaming. Se usa solo cuando streamReader() no se implementa. |
streamReader(schema) |
Devuelve una DataSourceStreamReader instancia de para leer datos de streaming. Tiene prioridad sobre simpleStreamReader(). |
Ejemplos
Defina y registre un origen de datos legible personalizado:
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()
Defina un origen de datos con un StructType esquema:
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
class MyDataSource(DataSource):
def schema(self):
return StructType().add("a", "int").add("b", "string")