DataFrame-osztály

Elnevezett oszlopokba csoportosított elosztott adatgyűjtemény.

A DataFrame egyenértékű a Spark SQL relációs tábláival, és a SparkSession különböző függvényeivel hozható létre.

Fontos

A DataFrame nem hozható létre közvetlenül a konstruktor használatával.

Támogatja a Spark Connectet

Tulajdonságok

Ingatlan Leírás
sparkSession A DataFrame-et létrehozó SparkSession értéket adja vissza.
rdd A tartalmat a sor RDD-jeként adja vissza (csak klasszikus módban).
na A hiányzó értékek kezelésére szolgáló DataFrameNaFunctions értéket ad vissza.
stat A statisztikai függvényekhez tartozó DataFrameStatFunctions értéket ad vissza.
write Interfész a nem streamelt DataFrame tartalmának külső tárolóba való mentéséhez.
writeStream A streamelt DataFrame tartalmának külső tárolóba mentésére szolgáló felület.
schema Ennek a DataFrame-nek a sémáját adja vissza StructType-ként.
dtypes Az összes oszlopnevet és adattípust listaként adja vissza.
columns Lekéri a DataFrame összes oszlopának nevét listaként.
storageLevel A DataFrame aktuális tárolási szintjének lekérése.
isStreaming Igaz értéket ad vissza, ha ez a DataFrame egy vagy több olyan forrást tartalmaz, amely folyamatosan adatokat ad vissza a beérkezéskor.
executionInfo Egy ExecutionInfo objektumot ad vissza a lekérdezés végrehajtása után.
plot Függvények ábrázolására szolgáló PySparkPlotAccessor értéket ad vissza.

Metódusok

Adatmegtekintés és -ellenőrzés

Módszer Leírás
toJSON(use_unicode) A DataFrame-et sztring vagy DataFrame RDD-vé alakítja.
printSchema(level) Fa formátumban nyomtatja ki a sémát.
explain(extended, mode) Hibakeresési célból kinyomtatja a (logikai és fizikai) terveket a konzolon.
show(n, truncate, vertical) A DataFrame első n sorait a konzolra nyomtatja.
collect() A DataFrame összes rekordját sorlistaként adja vissza.
toLocalIterator(prefetchPartitions) Egy iterátort ad vissza, amely a DataFrame összes sorát tartalmazza.
take(num) Az első számsorokat a Sor listaként adja vissza.
tail(num) Az utolsó számsorokat a Sor listaként adja vissza.
head(n) Az első n sort adja vissza.
first() Az első sort adja vissza sorként.
count() A DataFrame sorainak számát adja vissza.
isEmpty() Ellenőrzi, hogy a DataFrame üres-e, és logikai értéket ad vissza.
describe(*cols) Numerikus és sztringoszlopok alapstatisztikáit számítja ki.
summary(*statistics) Numerikus és sztringoszlopok megadott statisztikáit számítja ki.

Ideiglenes nézetek

Módszer Leírás
createTempView(name) Helyi ideiglenes nézetet hoz létre ezzel a DataFrame-kel.
createOrReplaceTempView(name) Helyi ideiglenes nézetet hoz létre vagy cserél le erre a DataFrame-re.
createGlobalTempView(name) Ezzel a DataFrame-kel globális ideiglenes nézetet hoz létre.
createOrReplaceGlobalTempView(name) Globális ideiglenes nézetet hoz létre vagy cserél le a megadott név használatával.

Kijelölés és vetítés

Módszer Leírás
select(*cols) Kifejezéskészletet projektel, és egy új DataFrame-et ad vissza.
selectExpr(*expr) SQL-kifejezések halmazát projekteli, és egy új DataFrame-et ad vissza.
filter(condition) A megadott feltételt használó sorok szűrése.
where(condition) Szűrő aliasa.
drop(*cols) Egy új DataFrame-et ad vissza megadott oszlopok nélkül.
toDF(*cols) Egy új DataFrame-et ad vissza új megadott oszlopnevekkel.
withColumn(colName, col) Új DataFrame-et ad vissza egy oszlop hozzáadásával vagy az azonos nevű meglévő oszlop lecserélésével.
withColumns(*colsMap) Egy új DataFrame-et ad vissza több oszlop hozzáadásával vagy az azonos nevű meglévő oszlopok lecserélésével.
withColumnRenamed(existing, new) Egy új DataFrame-et ad vissza egy meglévő oszlop átnevezésével.
withColumnsRenamed(colsMap) Egy új DataFrame-et ad vissza több oszlop átnevezésével.
withMetadata(columnName, metadata) Új DataFrame-et ad vissza egy meglévő oszlop metaadatokkal való frissítésével.
metadataColumn(colName) Kiválaszt egy metaadatoszlopot a logikai oszlop neve alapján, és oszlopként adja vissza.
colRegex(colName) Az oszlopot a regexként megadott oszlopnév alapján választja ki, és oszlopként adja vissza.

Rendezés és rendezés

Módszer Leírás
sort(*cols, **kwargs) Egy új DataFrame-et ad vissza a megadott oszlop(ok) szerint rendezve.
orderBy(*cols, **kwargs) Alias a rendezéshez.
sortWithinPartitions(*cols, **kwargs) Egy új DataFrame-et ad vissza, amely minden partíciót a megadott oszlop(ok) szerint rendez.

Összesítés és csoportosítás

Módszer Leírás
groupBy(*cols) Csoportosítja a DataFrame-et a megadott oszlopok szerint, hogy az összesítés végrehajtható legyen rajtuk.
rollup(*cols) Hozzon létre egy többdimenziós összesítőt az aktuális DataFrame-hez a megadott oszlopok használatával.
cube(*cols) Hozzon létre egy többdimenziós kockát az aktuális DataFrame-hez a megadott oszlopok használatával.
groupingSets(groupingSets, *cols) Hozzon létre többdimenziós összesítést az aktuális DataFrame-hez a megadott csoportosítási csoportokkal.
agg(*exprs) Összesítés a teljes DataFrame-en csoportok nélkül (a df.groupBy().agg() rövidítése).
observe(observation, *exprs) Definiáljon (elnevezett) metrikákat a DataFrame-en megfigyelni.

Joins

Módszer Leírás
join(other, on, how) Egy másik DataFrame-hez csatlakozik a megadott illesztési kifejezés használatával.
crossJoin(other) A cartesian terméket egy másik DataFrame-tal adja vissza.
lateralJoin(other, on, how) Oldalirányú illesztések egy másik DataFrame-hez a megadott illesztési kifejezés használatával.

Műveletek beállítása

Módszer Leírás
union(other) Adjon vissza egy új DataFrame-et, amely tartalmazza az ebben és egy másik DataFrame-ben lévő sorok egyesítését.
unionByName(other, allowMissingColumns) Egy új DataFrame-et ad vissza, amely az ebben és egy másik DataFrame-ben lévő sorok egyesítését tartalmazza.
intersect(other) Adjon vissza egy új DataFrame-et, amely csak ebben a DataFrame-ben és egy másik DataFrame-ben is tartalmaz sorokat.
intersectAll(other) Adjon vissza egy új DataFrame-et, amely a DataFrame-ben és egy másik DataFrame-ben is tartalmaz sorokat az ismétlődések megőrzése mellett.
subtract(other) Adjon vissza egy új DataFrame-et, amely sorokat tartalmaz ebben a DataFrame-ben, de nem egy másik DataFrame-ben.
exceptAll(other) Adjon vissza egy új DataFrame-et, amely sorokat tartalmaz ebben a DataFrame-ben, de nem egy másik DataFrame-ben, miközben megőrzi az ismétlődéseket.

Deduplication

Módszer Leírás
distinct() Egy új DataFrame-et ad vissza, amely a DataFrame különböző sorait tartalmazza.
dropDuplicates(subset) Adjon vissza egy új DataFrame-et, amely ismétlődő sorokat távolít el, opcionálisan csak bizonyos oszlopokat figyelembe véve.
dropDuplicatesWithinWatermark(subset) Adjon vissza egy új DataFrame-et, amely ismétlődő sorokat távolít el, opcionálisan csak bizonyos oszlopokat figyelembe véve, a vízjelen belül.

Mintavételezés és felosztás

Módszer Leírás
sample(withReplacement, fraction, seed) A DataFrame mintául szolgáló részhalmazát adja vissza.
sampleBy(col, fractions, seed) Egy rétegzett mintát ad vissza csere nélkül az egyes rétegeken megadott törtrész alapján.
randomSplit(weights, seed) Véletlenszerűen felosztja ezt a DataFrame-et a megadott súlyokkal.

Partitioning

Módszer Leírás
coalesce(numPartitions) Egy új DataFrame-et ad vissza, amely pontosan numPartitions partíciókkal rendelkezik.
repartition(numPartitions, *cols) A megadott particionálási kifejezések által particionált új DataFrame-et ad vissza.
repartitionByRange(numPartitions, *cols) A megadott particionálási kifejezések által particionált új DataFrame-et ad vissza.
repartitionById(numPartitions, partitionIdCol) A megadott partícióazonosító-kifejezés által particionált új DataFrame-et ad vissza.

Átalakítása

Módszer Leírás
unpivot(ids, values, variableColumnName, valueColumnName) Adatkeret leválasztása széles formátumról hosszú formátumra.
melt(ids, values, variableColumnName, valueColumnName) Az unpivot aliasa.
transpose(indexColumn) Transzponált adatkeretet úgy, hogy a megadott indexoszlop értékei az új oszlopokká váljanak.

Hiányzó adatkezelés

Módszer Leírás
dropna(how, thresh, subset) Egy új DataFrame-kihagyó sort ad vissza null vagy NaN értékekkel.
fillna(value, subset) Egy új DataFrame-et ad vissza, amely a null értékeket új értékkel tölti ki.
replace(to_replace, value, subset) Egy új DataFrame-et ad vissza, amely egy értéket egy másik értékre cserél.

Statisztikai függvények

Módszer Leírás
approxQuantile(col, probabilities, relativeError) Kiszámítja egy DataFrame numerikus oszlopainak hozzávetőleges kvantiliseit.
corr(col1, col2, method) Egy DataFrame két oszlopának korrelációját számítja ki kettős értékként.
cov(col1, col2) Számítsa ki az adott oszlopok kovarianciamintáját a nevük alapján.
crosstab(col1, col2) Kiszámítja az adott oszlopok párszintű gyakorisági táblázatát.
freqItems(cols, support) Gyakori elemek keresése oszlopokhoz, esetleg hamis pozitív értékekkel.

Sémaműveletek

Módszer Leírás
to(schema) Egy új DataFrame-et ad vissza, amelyben minden sor egyeztetve van a megadott sémával.
alias(alias) Egy új DataFrame-et ad vissza aliaskészlettel.

Iteration

Módszer Leírás
foreach(f) Alkalmazza az f függvényt a DataFrame összes sorára.
foreachPartition(f) Alkalmazza az f függvényt a DataFrame minden partíciójára.

Gyorsítótárazás és adatmegőrzés

Módszer Leírás
cache() Megőrzi a DataFrame-et az alapértelmezett tárolási szinttel (MEMORY_AND_DISK_DESER).
persist(storageLevel) A tárolási szintet úgy állítja be, hogy a DataFrame tartalmát a műveletek során is megőrizze.
unpersist(blocking) A DataFrame-et nem állandóként jelöli meg, és eltávolítja annak összes blokkját a memóriából és a lemezről.

Ellenőrző pontok használata

Módszer Leírás
checkpoint(eager) A DataFrame ellenőrzőponttal rendelkező verzióját adja vissza.
localCheckpoint(eager, storageLevel) A DataFrame helyileg ellenőrzőponttal rendelkező verzióját adja vissza.

Streamelési műveletek

Módszer Leírás
withWatermark(eventTime, delayThreshold) A DataFrame eseményideje vízjelét határozza meg.

Optimalizálási tippek

Módszer Leírás
hint(name, *parameters) Néhány tippet ad az aktuális DataFrame-ről.

Korlátok és eltolások

Módszer Leírás
limit(num) Az eredményszámot a megadott számra korlátozza.
offset(num) Új DataFrame-et ad vissza az első n sor kihagyásával.

Speciális átalakítások

Módszer Leírás
transform(func, *args, **kwargs) Egy új DataFrame-et ad vissza. Az egyéni átalakítások láncolásának tömör szintaxisa.

Konvertálási módszerek

Módszer Leírás
toPandas() A DataFrame tartalmát Pandas pandasként adja vissza. DataFrame.
toArrow() Ennek a DataFrame-nek a tartalmát PyArrow pyarrow-ként adja vissza. Táblázat.
pandas_api(index_col) A meglévő DataFrame-et pandas-on-Spark DataFrame-gé alakítja át.
mapInPandas(func, schema, barrier, profile) Az aktuális DataFrame-ben lévő kötegek iterátorát egy Python natív függvény használatával leképezi.
mapInArrow(func, schema, barrier, profile) Leképezi az aktuális DataFrame kötegeinek iterátorát a pyarrow-natív Python-függvény használatával. RecordBatch.

Adatok írása

Módszer Leírás
writeTo(table) Hozzon létre egy írási konfigurációszerkesztőt a v2-forrásokhoz.
mergeInto(table, condition) A forrástáblán alapuló frissítések, beszúrások és törlések halmazát egyesíti egy céltáblában.

DataFrame összehasonlítása

Módszer Leírás
sameSemantics(other) Igaz értéket ad vissza, ha a logikai lekérdezési tervek mindkét DataFrame-ben egyenlőek.
semanticHash() A logikai lekérdezési terv kivonatkódját adja vissza ehhez a DataFrame-hez.

Metaadatok és fájladatok

Módszer Leírás
inputFiles() A DataFrame-et alkotó fájlok részletes pillanatképét adja vissza.

Speciális SQL-funkciók

Módszer Leírás
isLocal() Igaz értéket ad vissza, ha a gyűjtési és az átvételi metódusok helyileg futtathatók.
asTable() A DataFrame-et TableArg objektummá alakítja, amely táblaargumentumként használható a TVF-ben.
scalar() Oszlopobjektumot ad vissza egy SKALÁRIS al lekérdezéshez, amely pontosan egy sort és egy oszlopot tartalmaz.
exists() Oszlopobjektumot ad vissza egy EXISTS-alqueryhez.

Examples

Alapszintű DataFrame-műveletek

# Create a DataFrame
people = spark.createDataFrame([
    {"deptId": 1, "age": 40, "name": "Alice", "gender": "M", "salary": 50},
    {"deptId": 1, "age": 50, "name": "Bob", "gender": "M", "salary": 100},
    {"deptId": 2, "age": 60, "name": "Sue", "gender": "F", "salary": 150},
    {"deptId": 3, "age": 20, "name": "Tom", "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()

Összesítés és csoportosítás

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

Joins

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

Összetett átalakítások

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