Класс DataFrameReader

Интерфейс, используемый для загрузки кадра данных из внешних систем хранения (например, файловых систем, хранилищ ключей и т. д.).

Поддержка Spark Connect

Синтаксис

Используется SparkSession.read для доступа к этому интерфейсу.

Методы

Метод Описание
format(source) Задает формат источника входных данных.
schema(schema) Указывает входную схему.
option(key, value) Добавляет входной параметр для базового источника данных.
options(**options) Добавляет параметры ввода для базового источника данных.
load(path, format, schema, **options) Загружает данные из источника данных и возвращает его в виде кадра данных.
json(path, schema, ...) Загружает JSON-файлы и возвращает результаты в виде кадра данных.
table(tableName) Возвращает указанную таблицу в виде кадра данных.
parquet(*paths, **options) Загружает файлы Parquet, возвращая результат в виде кадра данных.
text(paths, wholetext, lineSep, ...) Загружает текстовые файлы и возвращает кадр данных, схема которого начинается со строкового столбца с именем value.
csv(path, schema, sep, encoding, ...) Загружает CSV-файл и возвращает результат в виде кадра данных.
xml(path, rowTag, schema, ...) Загружает XML-файл и возвращает результат в виде кадра данных.
excel(path, dataAddress, headerRows, ...) Загружает файлы Excel, возвращая результат в виде кадра данных.
orc(path, mergeSchema, pathGlobFilter, ...) Загружает ФАЙЛЫ ORC, возвращая результат в виде кадра данных.
jdbc(url, table, column, lowerBound, upperBound, numPartitions, predicates, properties) Создайте кадр данных, представляющий таблицу с именем базы данных, доступную через URL-адрес JDBC и свойства подключения.

Примеры

Чтение из разных источников данных

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

Использование формата и загрузки

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

Указание схемы

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

Чтение из 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"}
)

Цепочка методов

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