Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma classe base para fontes de dados.
Essa classe representa uma fonte de dados personalizada que permite a leitura e/ou gravação nela. A fonte de dados fornece métodos para criar leitores e gravadores para ler e gravar dados, respectivamente. 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 ambos).
Depois de implementar essa interface, você pode carregar sua fonte de dados usando spark.read.format(...).load() e salvar 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 que não diferencia maiúsculas de minúsculas que representa as opções dessa fonte de dados. |
Methods
| Método | Descrição |
|---|---|
name() |
Retorna uma cadeia de caracteres que representa o nome do formato dessa fonte de dados. Por padrão, retorna o nome da classe. Substitua para fornecer um nome curto personalizado. |
schema() |
Retorna o esquema da fonte de dados como uma StructType cadeia de caracteres DDL ou de DDL. Se não for implementado e nenhum esquema for fornecido pelo usuário, uma exceção será gerada. |
reader(schema) |
Retorna uma DataSourceReader instância para ler dados. Necessário para fontes de dados legíveis. |
writer(schema, overwrite) |
Retorna uma DataSourceWriter instância para gravar dados. Necessário para fontes de dados graváveis. |
streamWriter(schema, overwrite) |
Retorna uma DataSourceStreamWriter instância para gravar dados em um coletor de streaming. Necessário para fontes de dados de streaming graváveis. |
simpleStreamReader(schema) |
Retorna uma SimpleDataSourceStreamReader instância para ler dados de streaming. Usado somente quando streamReader() não for implementado. |
streamReader(schema) |
Retorna uma DataSourceStreamReader instância para ler dados de streaming. Tem prioridade sobre simpleStreamReader(). |
Exemplos
Defina e registre 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")