Share via


DataFrame-klasse

Een gedistribueerde verzameling gegevens die zijn gegroepeerd in benoemde kolommen.

Een DataFrame is gelijk aan een relationele tabel in Spark SQL en kan worden gemaakt met behulp van verschillende functies in SparkSession.

Belangrijk

Een DataFrame mag niet rechtstreeks worden gemaakt met behulp van de constructor.

Ondersteunt Spark Connect

Eigenschappen

Vastgoed Beschrijving
sparkSession Hiermee wordt SparkSession geretourneerd die dit DataFrame heeft gemaakt.
rdd Retourneert de inhoud als een RDD van rij (alleen klassieke modus).
na Hiermee wordt een DataFrameNaFunctions geretourneerd voor het verwerken van ontbrekende waarden.
stat Hiermee wordt een DataFrameStatFunctions geretourneerd voor statistische functies.
write Interface voor het opslaan van de inhoud van het niet-streaming DataFrame in externe opslag.
writeStream Interface voor het opslaan van de inhoud van het streaming DataFrame in externe opslag.
schema Retourneert het schema van dit DataFrame als een StructType.
dtypes Retourneert alle kolomnamen en de bijbehorende gegevenstypen als een lijst.
columns Haalt de namen van alle kolommen in het DataFrame op als een lijst.
storageLevel Haal het huidige opslagniveau van het DataFrame op.
isStreaming Retourneert Waar als dit DataFrame een of meer bronnen bevat die continu gegevens retourneren wanneer deze binnenkomen.
executionInfo Retourneert een ExecutionInfo-object nadat de query is uitgevoerd.
plot Hiermee wordt een PySparkPlotAccessor geretourneerd voor het tekenen van functies.

Methods

Gegevensweergave en -inspectie

Methode Beschrijving
toJSON(use_unicode) Converteert een DataFrame naar een RDD van tekenreeks of DataFrame.
printSchema(level) Hiermee wordt het schema afgedrukt in de structuurindeling.
explain(extended, mode) Hiermee worden de (logische en fysieke) plannen afgedrukt naar de console voor foutopsporing.
show(n, truncate, vertical) Hiermee worden de eerste n rijen van het DataFrame afgedrukt naar de console.
collect() Retourneert alle records in het DataFrame als een lijst met rijen.
toLocalIterator(prefetchPartitions) Retourneert een iterator die alle rijen in dit DataFrame bevat.
take(num) Retourneert de eerste getalrijen als een lijst met rijen.
tail(num) Retourneert de laatste getalrijen als een lijst met rijen.
head(n) Retourneert de eerste n rijen.
first() Retourneert de eerste rij als een rij.
count() Retourneert het aantal rijen in dit DataFrame.
isEmpty() Controleert of het DataFrame leeg is en retourneert een Booleaanse waarde.
describe(*cols) Berekent basisstatistieken voor numerieke en tekenreekskolommen.
summary(*statistics) Berekent de opgegeven statistieken voor numerieke en tekenreekskolommen.

Tijdelijke weergaven

Methode Beschrijving
createTempView(name) Hiermee maakt u een lokale tijdelijke weergave met dit DataFrame.
createOrReplaceTempView(name) Hiermee maakt of vervangt u een lokale tijdelijke weergave met dit DataFrame.
createGlobalTempView(name) Hiermee maakt u een globale tijdelijke weergave met dit DataFrame.
createOrReplaceGlobalTempView(name) Hiermee maakt of vervangt u een globale tijdelijke weergave met behulp van de opgegeven naam.

Selectie en projectie

Methode Beschrijving
select(*cols) Projecteert een set expressies en retourneert een nieuw DataFrame.
selectExpr(*expr) Projecteert een set SQL-expressies en retourneert een nieuw DataFrame.
filter(condition) Hiermee filtert u rijen met behulp van de opgegeven voorwaarde.
where(condition) Alias voor filter.
drop(*cols) Retourneert een nieuw DataFrame zonder opgegeven kolommen.
toDF(*cols) Retourneert een nieuw DataFrame met nieuwe opgegeven kolomnamen.
withColumn(colName, col) Retourneert een nieuw DataFrame door een kolom toe te voegen of de bestaande kolom met dezelfde naam te vervangen.
withColumns(*colsMap) Retourneert een nieuw DataFrame door meerdere kolommen toe te voegen of de bestaande kolommen met dezelfde namen te vervangen.
withColumnRenamed(existing, new) Retourneert een nieuw DataFrame door de naam van een bestaande kolom te wijzigen.
withColumnsRenamed(colsMap) Retourneert een nieuw DataFrame door de naam van meerdere kolommen te wijzigen.
withMetadata(columnName, metadata) Retourneert een nieuw DataFrame door een bestaande kolom met metagegevens bij te werken.
metadataColumn(colName) Selecteert een kolom met metagegevens op basis van de naam van de logische kolom en retourneert deze als een kolom.
colRegex(colName) Selecteert de kolom op basis van de kolomnaam die is opgegeven als een regex en retourneert deze als kolom.

Sorteren en ordenen

Methode Beschrijving
sort(*cols, **kwargs) Retourneert een nieuw DataFrame gesorteerd op de opgegeven kolom(en).
orderBy(*cols, **kwargs) Alias voor sorteren.
sortWithinPartitions(*cols, **kwargs) Retourneert een nieuw DataFrame waarbij elke partitie wordt gesorteerd op de opgegeven kolom(en).

Aggregatie en groepering

Methode Beschrijving
groupBy(*cols) Hiermee wordt het DataFrame gegroepeerd op basis van de opgegeven kolommen, zodat aggregatie erop kan worden uitgevoerd.
rollup(*cols) Maak een multidimensionale rollup voor het huidige DataFrame met behulp van de opgegeven kolommen.
cube(*cols) Maak een multidimensionale kubus voor het huidige DataFrame met behulp van de opgegeven kolommen.
groupingSets(groupingSets, *cols) Maak multidimensionale aggregatie voor het huidige DataFrame met behulp van de opgegeven groeperingssets.
agg(*exprs) Aggregeren op het hele DataFrame zonder groepen (afkorting voor df.groupBy().agg()).
observe(observation, *exprs) Definieer (benoemde) metrische gegevens om te observeren op het DataFrame.

[Samenvoegingen]

Methode Beschrijving
join(other, on, how) Wordt samengevoegd met een ander DataFrame, met behulp van de opgegeven join-expressie.
crossJoin(other) Retourneert het cartesische product met een ander DataFrame.
lateralJoin(other, on, how) Lateral joins met een ander DataFrame, met behulp van de opgegeven join-expressie.

Bewerkingen instellen

Methode Beschrijving
union(other) Retourneert een nieuw DataFrame met de samenvoeging van rijen in dit en een ander DataFrame.
unionByName(other, allowMissingColumns) Retourneert een nieuw DataFrame met een samenvoeging van rijen in dit en een ander DataFrame.
intersect(other) Retourneert een nieuw DataFrame dat alleen rijen bevat in zowel dit DataFrame als een ander DataFrame.
intersectAll(other) Retourneer een nieuw DataFrame met rijen in zowel dit DataFrame als een ander DataFrame, met behoud van duplicaten.
subtract(other) Retourneert een nieuw DataFrame met rijen in dit DataFrame, maar niet in een ander DataFrame.
exceptAll(other) Retourneer een nieuw DataFrame met rijen in dit DataFrame, maar niet in een ander DataFrame, terwijl duplicaten behouden blijven.

Ontdubbeling

Methode Beschrijving
distinct() Retourneert een nieuw DataFrame met de afzonderlijke rijen in dit DataFrame.
dropDuplicates(subset) Retourneer een nieuw DataFrame waarbij dubbele rijen zijn verwijderd, eventueel alleen rekening houdend met bepaalde kolommen.
dropDuplicatesWithinWatermark(subset) Retourneer een nieuw DataFrame met dubbele rijen die zijn verwijderd, eventueel alleen rekening houdend met bepaalde kolommen binnen het watermerk.

Steekproeven en splitsen

Methode Beschrijving
sample(withReplacement, fraction, seed) Retourneert een voorbeeldsubset van dit DataFrame.
sampleBy(col, fractions, seed) Retourneert een gestratificeerde steekproef zonder vervanging op basis van de breuk die op elk stratum is opgegeven.
randomSplit(weights, seed) Splitst dit DataFrame willekeurig op met de opgegeven gewichten.

Partitie

Methode Beschrijving
coalesce(numPartitions) Retourneert een nieuw DataFrame met exact numPartitions-partities.
repartition(numPartitions, *cols) Retourneert een nieuw DataFrame dat is gepartitioneerd door de opgegeven partitioneringsexpressies.
repartitionByRange(numPartitions, *cols) Retourneert een nieuw DataFrame dat is gepartitioneerd door de opgegeven partitioneringsexpressies.
repartitionById(numPartitions, partitionIdCol) Retourneert een nieuw DataFrame dat is gepartitioneerd door de opgegeven partitie-id-expressie.

Herstructurering

Methode Beschrijving
unpivot(ids, values, variableColumnName, valueColumnName) Draai een DataFrame van brede indeling naar lange indeling op.
melt(ids, values, variableColumnName, valueColumnName) Alias voor draaitabel opheffen.
transpose(indexColumn) Transponeert een DataFrame zodanig dat de waarden in de opgegeven indexkolom de nieuwe kolommen worden.

Ontbrekende gegevensverwerking

Methode Beschrijving
dropna(how, thresh, subset) Retourneert een nieuw DataFrame waarbij rijen met null- of NaN-waarden worden weggelaten.
fillna(value, subset) Retourneert een nieuw DataFrame waarin null-waarden worden gevuld met een nieuwe waarde.
replace(to_replace, value, subset) Retourneert een nieuw DataFrame dat een waarde vervangt door een andere waarde.

Statistische functies

Methode Beschrijving
approxQuantile(col, probabilities, relativeError) Berekent de geschatte kwantielen van numerieke kolommen van een DataFrame.
corr(col1, col2, method) Berekent de correlatie van twee kolommen van een DataFrame als een dubbele waarde.
cov(col1, col2) Bereken de covariantie van de steekproef voor de opgegeven kolommen, opgegeven door hun namen.
crosstab(col1, col2) Berekent een frequentietabel met twee kolommen.
freqItems(cols, support) Frequente items voor kolommen zoeken, mogelijk met fout-positieven.

Schemabewerkingen

Methode Beschrijving
to(schema) Retourneert een nieuw DataFrame waarin elke rij wordt afgestemd op het opgegeven schema.
alias(alias) Retourneert een nieuw DataFrame met een aliasset.

Iteration

Methode Beschrijving
foreach(f) Hiermee past u de f-functie toe op alle rijen van dit DataFrame.
foreachPartition(f) Hiermee past u de f-functie toe op elke partitie van dit DataFrame.

Caching en persistentie

Methode Beschrijving
cache() Het DataFrame blijft behouden met het standaardopslagniveau (MEMORY_AND_DISK_DESER).
persist(storageLevel) Hiermee stelt u het opslagniveau in om de inhoud van het DataFrame tussen bewerkingen te behouden.
unpersist(blocking) Markeert het DataFrame als niet-persistent en verwijder alle blokken ervoor uit het geheugen en de schijf.

Controlepunten maken

Methode Beschrijving
checkpoint(eager) Hiermee wordt een controlepuntversie van dit DataFrame geretourneerd.
localCheckpoint(eager, storageLevel) Retourneert een lokaal controlepuntversie van dit DataFrame.

Streamingbewerkingen

Methode Beschrijving
withWatermark(eventTime, delayThreshold) Hiermee definieert u een gebeurtenistijdwatermerk voor dit DataFrame.

Optimalisatiehints

Methode Beschrijving
hint(name, *parameters) Hiermee geeft u een hint op voor het huidige DataFrame.

Limieten en offsets

Methode Beschrijving
limit(num) Hiermee beperkt u het aantal resultaten tot het opgegeven getal.
offset(num) Retourneert een nieuw DataFrame door de eerste n rijen over te slaan.

Geavanceerde transformaties

Methode Beschrijving
transform(func, *args, **kwargs) Hiermee wordt een nieuw DataFrame geretourneerd. Beknopte syntaxis voor het koppelen van aangepaste transformaties.

Conversiemethoden

Methode Beschrijving
toPandas() Retourneert de inhoud van dit DataFrame als Pandas pandas. DataFrame.
toArrow() Retourneert de inhoud van dit DataFrame als PyArrow pyarrow. Tabel.
pandas_api(index_col) Converteert het bestaande DataFrame naar een Pandas-on-Spark DataFrame.
mapInPandas(func, schema, barrier, profile) Hiermee wordt een iterator van batches in het huidige DataFrame toegewezen met behulp van een systeemeigen Python-functie.
mapInArrow(func, schema, barrier, profile) Hiermee wordt een iterator van batches in het huidige DataFrame toegewezen met behulp van een systeemeigen Python-functie die wordt uitgevoerd op pyarrow. RecordBatch.

Gegevens schrijven

Methode Beschrijving
writeTo(table) Maak een opbouwfunctie voor schrijfconfiguratie voor v2-bronnen.
mergeInto(table, condition) Voegt een set updates, invoegingen en verwijderingen samen op basis van een brontabel in een doeltabel.

DataFrame-vergelijking

Methode Beschrijving
sameSemantics(other) Retourneert Waar wanneer de logische queryplannen in beide DataFrames gelijk zijn.
semanticHash() Retourneert een hashcode van het logische queryplan voor dit DataFrame.

Metagegevens en bestandsgegevens

Methode Beschrijving
inputFiles() Retourneert een momentopname van de best effort van de bestanden die dit DataFrame vormen.

Geavanceerde SQL-functies

Methode Beschrijving
isLocal() Retourneert True als de methoden voor verzamelen en nemen lokaal kunnen worden uitgevoerd.
asTable() Converteert het DataFrame naar een TableArg-object, dat kan worden gebruikt als een tabelargument in een TVF.
scalar() Retourneert een kolomobject voor een SCALAR-subquery die precies één rij en één kolom bevat.
exists() Retourneert een kolomobject voor een EXISTS-subquery.

Examples

Eenvoudige DataFrame-bewerkingen

# Create a DataFrame
people = spark.createDataFrame([
    {"deptId": 1, "age": 40, "name": "Hyukjin Kwon", "gender": "M", "salary": 50},
    {"deptId": 1, "age": 50, "name": "Takuya Ueshin", "gender": "M", "salary": 100},
    {"deptId": 2, "age": 60, "name": "Xinrong Meng", "gender": "F", "salary": 150},
    {"deptId": 3, "age": 20, "name": "Haejoon Lee", "gender": "M", "salary": 200}
])

# Select columns
people.select("name", "age").show()

# Filter rows
people.filter(people.age > 30).show()

# Add a new column
people.withColumn("age_plus_10", people.age + 10).show()

Aggregatie en groepering

# Group by and aggregate
people.groupBy("gender").agg({"salary": "avg", "age": "max"}).show()

# Multiple aggregations
from pyspark.sql import functions as F
people.groupBy("deptId").agg(
    F.avg("salary").alias("avg_salary"),
    F.max("age").alias("max_age")
).show()

[Samenvoegingen]

# Create another DataFrame
department = spark.createDataFrame([
    {"id": 1, "name": "PySpark"},
    {"id": 2, "name": "ML"},
    {"id": 3, "name": "Spark SQL"}
])

# Join DataFrames
people.join(department, people.deptId == department.id).show()

Complexe transformaties

# Chained operations
result = people.filter(people.age > 30) \\
    .join(department, people.deptId == department.id) \\
    .groupBy(department.name, "gender") \\
    .agg({"salary": "avg", "age": "max"}) \\
    .sort("max(age)")
result.show()