Share via


DataFrameReader-klasse

Interface die wordt gebruikt voor het laden van een DataFrame van externe opslagsystemen (bijvoorbeeld bestandssystemen, sleutel-waardearchieven, enzovoort).

Ondersteunt Spark Connect

Syntaxis

Gebruik SparkSession.read deze interface om toegang te krijgen tot deze interface.

Methods

Methode Beschrijving
format(source) Hiermee geeft u de indeling van de invoergegevensbron op.
schema(schema) Hiermee geeft u het invoerschema op.
option(key, value) Hiermee voegt u een invoeroptie toe voor de onderliggende gegevensbron.
options(**options) Hiermee voegt u invoeropties toe voor de onderliggende gegevensbron.
load(path, format, schema, **options) Laadt gegevens uit een gegevensbron en retourneert deze als een DataFrame.
json(path, schema, ...) Laadt JSON-bestanden en retourneert de resultaten als een DataFrame.
table(tableName) Retourneert de opgegeven tabel als een DataFrame.
parquet(*paths, **options) Laadt Parquet-bestanden en retourneert het resultaat als een DataFrame.
text(paths, wholetext, lineSep, ...) Laadt tekstbestanden en retourneert een DataFrame waarvan het schema begint met een tekenreekskolom met de naam 'waarde'.
csv(path, schema, sep, encoding, ...) Laadt een CSV-bestand en retourneert het resultaat als een DataFrame.
xml(path, rowTag, schema, ...) Laadt een XML-bestand en retourneert het resultaat als een DataFrame.
excel(path, dataAddress, headerRows, ...) Laadt Excel-bestanden en retourneert het resultaat als een DataFrame.
orc(path, mergeSchema, pathGlobFilter, ...) Laadt ORC-bestanden en retourneert het resultaat als een DataFrame.
jdbc(url, table, column, lowerBound, upperBound, numPartitions, predicates, properties) Maak een DataFrame dat de databasetabel vertegenwoordigt die toegankelijk is via de URL en verbindingseigenschappen van JDBC.

Examples

Lezen uit verschillende gegevensbronnen

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

Opmaak en belasting gebruiken

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

Schema opgeven

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

Lezen vanuit 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"}
)

Methodekoppeling

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