Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
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")