Partager via


Classe DataFrameReader

Interface utilisée pour charger un DataFrame à partir de systèmes de stockage externes (par exemple, systèmes de fichiers, magasins clé-valeur, etc.).

Prend en charge Spark Connect

Syntaxe

Permet SparkSession.read d’accéder à cette interface.

Méthodes

Méthode Description
format(source) Spécifie le format de source de données d’entrée.
schema(schema) Spécifie le schéma d’entrée.
option(key, value) Ajoute une option d’entrée pour la source de données sous-jacente.
options(**options) Ajoute des options d’entrée pour la source de données sous-jacente.
load(path, format, schema, **options) Charge des données à partir d’une source de données et les retourne en tant que DataFrame.
json(path, schema, ...) Charge les fichiers JSON et retourne les résultats sous forme de DataFrame.
table(tableName) Retourne la table spécifiée en tant que DataFrame.
parquet(*paths, **options) Charge des fichiers Parquet, en retournant le résultat sous forme de DataFrame.
text(paths, wholetext, lineSep, ...) Charge des fichiers texte et retourne un DataFrame dont le schéma commence par une colonne de chaîne nommée « value ».
csv(path, schema, sep, encoding, ...) Charge un fichier CSV et retourne le résultat sous forme de DataFrame.
xml(path, rowTag, schema, ...) Charge un fichier XML et retourne le résultat sous forme de DataFrame.
excel(path, dataAddress, headerRows, ...) Charge les fichiers Excel, en retournant le résultat sous forme de DataFrame.
orc(path, mergeSchema, pathGlobFilter, ...) Charge les fichiers ORC, en retournant le résultat sous forme de DataFrame.
jdbc(url, table, column, lowerBound, upperBound, numPartitions, predicates, properties) Construisez un DataFrame représentant la table de base de données nommée table accessible via l’URL JDBC et les propriétés de connexion.

Exemples

Lecture à partir de différentes sources de données

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

Utilisation du format et du chargement

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

Spécification du schéma

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

Lecture à partir 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"}
)

Chaînage de méthodes

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