Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Uma classe base para fontes de dados.
Esta classe representa uma fonte de dados personalizada que permite ler e/ou escrever nela. A fonte de dados fornece métodos para criar leitores e escritores para leitura e escrita de dados, respetivamente. Pelo menos um dos métodos reader() ou writer() deve ser implementado por qualquer subclasse para tornar a fonte de dados legível ou gravável (ou ambas).
Depois de implementar esta interface, pode carregar a sua fonte de dados usando spark.read.format(...).load() e guardar os dados usando df.write.format(...).save().
Sintaxe
from pyspark.sql.datasource import DataSource
class MyDataSource(DataSource):
@classmethod
def name(cls):
return "my_data_source"
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
options |
dicionário | Um dicionário insensível a maiúsculas minúsculas que representa as opções para esta fonte de dados. |
Methods
| Método | Descrição |
|---|---|
name() |
Devolve uma string que representa o nome do formato desta fonte de dados. Por defeito, devolve o nome da turma. Override para fornecer um nome curto personalizado. |
schema() |
Devolve o esquema da fonte de dados como uma StructType ou cadeia DDL. Se não for implementado e o utilizador não for fornecido um esquema, é lançada uma exceção. |
reader(schema) |
Devolve uma DataSourceReader instância para leitura de dados. Necessária para fontes de dados legíveis. |
writer(schema, overwrite) |
Devolve uma DataSourceWriter instância para escrever dados. Necessária para fontes de dados graváveis. |
streamWriter(schema, overwrite) |
Devolve uma DataSourceStreamWriter instância para gravar dados num sink de streaming. Necessária para fontes de dados em streaming graváveis. |
simpleStreamReader(schema) |
Devolve uma SimpleDataSourceStreamReader instância para ler dados em streaming. Usado apenas quando streamReader() não é implementado. |
streamReader(schema) |
Devolve uma DataSourceStreamReader instância para ler dados em streaming. Tem prioridade sobre simpleStreamReader(). |
Exemplos
Defina e registe uma fonte de dados legível personalizada:
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 uma fonte de dados com um 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")