DataFrameReader sınıfı

Dış depolama sistemlerinden (ör. dosya sistemleri, anahtar-değer depoları vb.) bir DataFrame yüklemek için kullanılan arabirim.

Spark Connect'i destekler

Sözdizimi

Bu arabirime erişmek için kullanın SparkSession.read .

Methods

Yöntem Açıklama
format(source) Giriş veri kaynağı biçimini belirtir.
schema(schema) Giriş şemasını belirtir.
option(key, value) Temel alınan veri kaynağı için bir giriş seçeneği ekler.
options(**options) Temel alınan veri kaynağı için giriş seçenekleri ekler.
load(path, format, schema, **options) Bir veri kaynağındaki verileri yükler ve DataFrame olarak döndürür.
json(path, schema, ...) JSON dosyalarını yükler ve sonuçları DataFrame olarak döndürür.
table(tableName) Belirtilen tabloyu DataFrame olarak döndürür.
parquet(*paths, **options) Parquet dosyalarını yükler ve sonucu DataFrame olarak döndürür.
text(paths, wholetext, lineSep, ...) Metin dosyalarını yükler ve şeması "value" adlı bir dize sütunuyla başlayan bir DataFrame döndürür.
csv(path, schema, sep, encoding, ...) Csv dosyasını yükler ve sonucu DataFrame olarak döndürür.
xml(path, rowTag, schema, ...) XML dosyasını yükler ve sonucu DataFrame olarak döndürür.
excel(path, dataAddress, headerRows, ...) Excel dosyalarını yükler ve sonucu DataFrame olarak döndürür.
orc(path, mergeSchema, pathGlobFilter, ...) SONUCU DataFrame olarak döndüren ORC dosyalarını yükler.
jdbc(url, table, column, lowerBound, upperBound, numPartitions, predicates, properties) JDBC URL url'si ve bağlantı özellikleri aracılığıyla erişilebilen tablo adlı veritabanı tablosunu temsil eden bir DataFrame oluşturun.

Örnekler

Farklı veri kaynaklarından okuma

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

Biçim ve yükleme kullanma

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

Şema belirtme

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'den okuma

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

Yöntem zincirleme

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