Pular para o conteúdo principal

Classe DataFrameReader

Interface usada para carregar um DataFrame de sistemas de armazenamento externos (por exemplo, sistemas de arquivos, armazenamentos key-valor, etc.).

Compatível com Spark Connect

Sintaxe

Use SparkSession.read para acessar esta interface.

Métodos

Método

Descrição

format(source)

Especifica o formato da fonte de dados de entrada.

schema(schema)

Especifica o esquema de entrada.

option(key, value)

Adiciona uma opção de entrada para a fonte de dados subjacente.

options(**options)

Adiciona opções de entrada para a fonte de dados subjacente.

load(path, format, schema, **options)

Carrega dados de uma fonte de dados e os retorna como um DataFrame.

json(path, schema, ...)

Carrega arquivos JSON e retorna os resultados como um DataFrame.

table(tableName)

Retorna a tabela especificada como um DataFrame.

parquet(*paths, **options)

Carrega arquivos Parquet, retornando o resultado como um DataFrame.

text(paths, wholetext, lineSep, ...)

Carrega arquivos de texto e retorna um DataFrame cujo esquema começa com uma coluna de strings chamada "value".

csv(path, schema, sep, encoding, ...)

Carrega um arquivo CSV e retorna o resultado como um DataFrame.

xml(path, rowTag, schema, ...)

Carrega um arquivo XML e retorna o resultado como um DataFrame.

excel(path, dataAddress, headerRows, ...)

Carrega arquivos do Excel, retornando o resultado como um DataFrame.

orc(path, mergeSchema, pathGlobFilter, ...)

Carrega arquivos ORC, retornando o resultado como um DataFrame.

jdbc(url, table, column, lowerBound, upperBound, numPartitions, predicates, properties)

Construa um DataFrame representando a tabela do banco de dados chamada `table`, acessível via URL JDBC (`url`) e propriedades de conexão.

Exemplos

Leitura de diferentes fontes de dados

Python
# Access DataFrameReader through SparkSession
spark.read

# Read JSON file
df = spark.read.json("path/to/file.json")

# Read CSV file with options
df = spark.read.option("header", "true").csv("path/to/file.csv")

# Read Parquet file
df = spark.read.parquet("path/to/file.parquet")

# Read from a table
df = spark.read.table("table_name")

Usando formato e carregamento

Python
# Specify format explicitly
df = spark.read.format("json").load("path/to/file.json")

# With options
df = spark.read.format("csv") \
.option("header", "true") \
.option("inferSchema", "true") \
.load("path/to/file.csv")

Especificando o esquema

Python
from pyspark.sql.types import StructType, StructField, StringType, IntegerType

# Define schema
schema = StructType([
StructField("name", StringType(), True),
StructField("age", IntegerType(), True)
])

# Read CSV with schema
df = spark.read.schema(schema).csv("path/to/file.csv")

# Read CSV with DDL-formatted string schema
df = spark.read.schema("name STRING, age INT").csv("path/to/file.csv")

Leitura de JDBC

Python
# Read from database table
df = spark.read.jdbc(
url="jdbc:postgresql://localhost:5432/mydb",
table="users",
properties={"user": "myuser", "password": "mypassword"}
)

# Read with partitioning for parallel loading
df = spark.read.jdbc(
url="jdbc:postgresql://localhost:5432/mydb",
table="users",
column="id",
lowerBound=1,
upperBound=1000,
numPartitions=10,
properties={"user": "myuser", "password": "mypassword"}
)

Encadeamento de métodos

Python
# Chain multiple configuration methods
df = spark.read \
.format("csv") \
.option("header", "true") \
.option("inferSchema", "true") \
.option("delimiter", ",") \
.schema("name STRING, age INT") \
.load("path/to/file.csv")