Dela via


DataFrameReader-klass

Gränssnitt som används för att läsa in en dataram från externa lagringssystem (t.ex. filsystem, nyckelvärdeslager osv.).

Stöder Spark Connect

Syntax

Använd SparkSession.read för att komma åt det här gränssnittet.

Methods

Metod Beskrivning
format(source) Anger indatakällans format.
schema(schema) Anger indataschemat.
option(key, value) Lägger till ett indataalternativ för den underliggande datakällan.
options(**options) Lägger till indataalternativ för den underliggande datakällan.
load(path, format, schema, **options) Läser in data från en datakälla och returnerar dem som en DataFrame.
json(path, schema, ...) Läser in JSON-filer och returnerar resultatet som en DataFrame.
table(tableName) Returnerar den angivna tabellen som en DataFrame.
parquet(*paths, **options) Läser in Parquet-filer och returnerar resultatet som en DataFrame.
text(paths, wholetext, lineSep, ...) Läser in textfiler och returnerar en DataFrame vars schema börjar med en strängkolumn med namnet "value".
csv(path, schema, sep, encoding, ...) Läser in en CSV-fil och returnerar resultatet som en DataFrame.
xml(path, rowTag, schema, ...) Läser in en XML-fil och returnerar resultatet som en DataFrame.
excel(path, dataAddress, headerRows, ...) Läser in Excel-filer och returnerar resultatet som en DataFrame.
orc(path, mergeSchema, pathGlobFilter, ...) Läser in ORC-filer och returnerar resultatet som en DataFrame.
jdbc(url, table, column, lowerBound, upperBound, numPartitions, predicates, properties) Skapa en DataFrame som representerar databastabellen med namnet table accessible via JDBC URL url och anslutningsegenskaper.

Exempel

Läsa från olika datakällor

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

Använda format och inläsning

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

Ange schema

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

Läsa från 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"}
)

Metodlänkning

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