Partekatu honen bidez:


Clase DataFrameReader

Interfaz usada para cargar un dataframe desde sistemas de almacenamiento externos (por ejemplo, sistemas de archivos, almacenes de clave-valor, etc.).

Admite Spark Connect

Sintaxis

Use SparkSession.read para acceder a esta interfaz.

Methods

Método Descripción
format(source) Especifica el formato del origen de datos de entrada.
schema(schema) Especifica el esquema de entrada.
option(key, value) Agrega una opción de entrada para el origen de datos subyacente.
options(**options) Agrega opciones de entrada para el origen de datos subyacente.
load(path, format, schema, **options) Carga datos de un origen de datos y los devuelve como dataframe.
json(path, schema, ...) Carga archivos JSON y devuelve los resultados como dataframe.
table(tableName) Devuelve la tabla especificada como dataframe.
parquet(*paths, **options) Carga archivos Parquet y devuelve el resultado como dataframe.
text(paths, wholetext, lineSep, ...) Carga archivos de texto y devuelve un DataFrame cuyo esquema comienza con una columna de cadena denominada "value".
csv(path, schema, sep, encoding, ...) Carga un archivo CSV y devuelve el resultado como dataframe.
xml(path, rowTag, schema, ...) Carga un archivo XML y devuelve el resultado como dataframe.
excel(path, dataAddress, headerRows, ...) Carga archivos de Excel y devuelve el resultado como dataframe.
orc(path, mergeSchema, pathGlobFilter, ...) Carga archivos ORC y devuelve el resultado como dataframe.
jdbc(url, table, column, lowerBound, upperBound, numPartitions, predicates, properties) Construya un DataFrame que represente la tabla de base de datos denominada tabla accesible a través de la dirección URL de JDBC y las propiedades de conexión.

Ejemplos

Lectura de orígenes de datos diferentes

# 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")

Uso de formato y carga

# 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")

Especificación del esquema

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")

Lectura de JDBC

# 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"}
)

Encadenamiento de métodos

# 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")