Korisnički definisana funkcija na CPU-u može da prekine Apache Spark upit koji je inače ubrzan GPU-om. cuDF dodatak uglavnom ne može da prevede proizvoljan UDF kod: pretvara kolonske podatke u redove, izvršava funkciju na CPU-u, pa zatim ponovo pretvara rezultat u kolone. NVIDIA vodič od 13. oktobra opisuje agentske veštine za prepisivanje UDF-a u Spark SQL, kolonski RapidsUDF, ili RapidsUDF koji koristi CUDA-u. Korisno pitanje za inženjera podataka jeste da li jedna prepravka daje iste odgovore, ostaje na GPU-u u relevantnom planu i poboljšava stvarni posao.
Ovo je vodič zasnovan na dokumentaciji. BIG CHANGE nije pokrenuo te veštine, testirao UDF niti merio Spark opterećenje.
Velika promena
- Šta je novo: NVIDIA je objavila fazni agentski tok rada za generisanje UDF testova, pretvaranje funkcije, procenu prepravke, poređenje CPU i GPU verzija i, po želji, optimizaciju cuDF implementacije.
- Kome pomaže: Inženjerima koji imaju GPU sposobnu RAPIDS/cuDF Spark obradu i konkretnu CPU UDF funkciju koja je prekida.
- Šta proveriti: Podudaranje izlaza na reprezentativnim graničnim slučajevima, izvršni plan bez ciljanog prelaska na CPU i ponovljive performanse celog posla na predviđenom hardveru.
Pre nego što počnete
Izaberite jednu UDF funkciju koju imate pravo da podelite sa programerskim agentom. Ne stavljajte akreditive, osetljive ulazne redove ni vlasničke skupove podataka u prompt osim ako su agent i njegovo okruženje odobreni za njih. Dajte izvorni kod UDF-a, mesto registracije i poziva, relevantne šeme, očekivano ponašanje za null vrednosti i greške, kao i mali dozvoljeni testni uzorak. Zabeležite plan i trajanje postojećeg Spark posla da biste imali osnovu za poređenje.
Ovaj README veština predstavlja verzionisanu početnu tačku toka rada. Za izgradnju UDF-ova traži Maven i JDK, uz kompatibilan Spark/RAPIDS/cuDF/CUDA paket i GPU. Pre instalacije proverite aktuelni vodič za kompatibilnost dodatka prema svojoj Spark distribuciji, Scala verziji, upravljačkom programu, CUDA izdanju i GPU-u. GPU u oblaku je alternativa lokalnom hardveru, ali dobavljač naplaćuje vreme instance i skladište. Upotreba agenta/modela takođe može da košta. README daje kostur projekta i primere, ali ne može da potvrdi kompatibilnost ili performanse vašeg klastera.
Prepravite i proverite jednu funkciju
- Najpre precizno utvrdite izvorno ponašanje. Zatražite od agenta da na izabranoj UDF funkciji koristi
udf-gen-testi sami pregledajte generisane testove. Dodajte stvarne slučajeve iz ugovora: null, prazne niske ili kolekcije, neispravne ulaze, granične vrednosti, numeričku preciznost, redosled i ponašanje pri grešci, gde je primenljivo. Pokrenite originalnu UDF funkciju nad njima. Očekuje se prolazni početni skup testova, a ne još prepravka. NVIDIA primer temperaturne funkcije izričito vraća null za null ulaz; SQL verzija je korisna samo ako se to ponašanje očuva i uz vaše tipove podataka i Spark podešavanja. - Izaberite najjednostavniji podržani cilj. Ako se logika može izraziti kroz Spark SQL ili DataFrame izraze, zatražite
udf-convert-to-sql. Tako izraz postaje vidljiv Spark planeru i dodatak može da zameni podržane operacije GPU ekvivalentima. Ako SQL ne može jasno da izrazi potrebnu logiku, zatražiteudf-convert-to-cudf: njegovRapidsUDF.evaluateColumnarprima GPU vektore kolona i sklapa cuDF operacije.udf-convert-to-cudaostavite za logiku kojoj je potrebno prilagođeno jezgro preko JNI-ja i čiji su dodatni troškovi implementacije i održavanja opravdani. Ovo su opcije za procenu, a ne obećanje da se svaka operacija izvršava na GPU-u. - Pregledajte prepravku pre prihvatanja. Uporedite prepravljenu implementaciju sa originalom i pokrenite obe nad istim odobrenim testnim slučajevima. Repozitorijum navodi i
udf-judge-conversionza odvojenu proveru nedostataka u testovima i grešaka u prepravci. Proverite tipove, prenos null vrednosti, zaokruživanje, izuzetke, redosled i upravljanje resursima. Kod cuDF prepravke proverite životni vek privremenih kolona i skalara; Scala primer iz tutorijala koristi resurse ograničene opsegom i vraća rezultujuću kolonu. Prolazni generisani testovi jesu koristan dokaz, ali čovek mora da odluči da li pokrivaju ugovor funkcije. - Pregledajte izvršeni plan. Pokrenite izmenjeni upit sa uključenim cuDF dodatkom i pregledajte plan i RAPIDS dijagnostiku za ciljani operator i obližnje konverzije. NVIDIA-in pregled dodatka navodi da se nepodržane SQL operacije vraćaju na Spark CPU izvršavanje. Ako plan i dalje prikazuje UDF ili okolne operatore na CPU-u, utvrdite koji izraz ili tip nije podržan i preispitajte izbor cilja. Sačuvajte planove pre i posle promene uz rezultat testa. Sama klasa nazvana
RapidsUDFne dokazuje da ceo posao ostaje na GPU-u. - Izmerite posao koji nameravate da pokrenete. Koristite
udf-benchmarkda uporedite originalnu i izmenjenu implementaciju pri istim ulazima, veličini klastera, podešavanjima i metodu merenja. Zabeležite trajanje posla, veličinu ulaza, ekvivalentnost izlaza i korišćenje GPU/CPU resursa. Ponovite pokretanja da biste uočili efekte pokretanja, keša ili nadmetanja za resurse. Rezultat treba da bude ponovljivo poređenje, čak i ako prepravka bude sporija. Ako je ispravna cuDF verzija spora, repozitorijum nudiudf-optimize-cudfza profilisanje i reviziju; posle svake izmene ponovo proverite ispravnost i plan.
Kako izgleda uspešan rezultat
Kandidat je spreman za uobičajeni pregled koda kada se izlazi izabrane UDF funkcije poklapaju sa dokumentovanim ponašanjem u odobrenim slučajevima, izvršni plan više ne sadrži ciljani prelazak na CPU i reprezentativno merenje pokazuje vredan rezultat od početka do kraja. Ako neka provera ne prođe, zadržite originalnu implementaciju, suzite prepravku na problematičan izraz i ponovite tu fazu. Semantičko nepoklapanje važnije je od bržeg merenja; nepromenjen plan znači da željeni GPU put nije potvrđen.
NVIDIA navodi jedan produkcioni primer u kome je UDF sa uključenim cuDF-om skratio vreme operatora sa 274,55 na 12,78 sati na opterećenju od 600 milijardi redova. To su vremena operatora koja je dobavljač prijavio za to opterećenje, a ne prognoza za drugu UDF funkciju ni rezultat posla od početka do kraja. Širu tvrdnju o 22 puta većoj brzini treba čitati u tom kontekstu. Kapacitet GPU-a, prenos podataka, nepodržane operacije, pregled koda i troškovi oblaka mogu promeniti ishod vašeg toka rada.
Izvori i dodatno čitanje
- NVIDIA Technical Blog, 13. oktobar 2026.: objašnjava prelazak na CPU, izbore SQL/cuDF/CUDA, četiri faze toka rada i jedini navedeni primer performansi kompanije. Brojke o performansama potiču od dobavljača.
- NVIDIA cuDF Spark veštine, fiksirana revizija repozitorijuma: verzionisana početna tačka za kostur i pojedinačne veštine. Naš kanal za preuzimanje nije mogao da otvori fiksiranu GitHub stranicu; detalji toka rada provereni su prema NVIDIA tutorijalu i dostupnom README-u veština na glavnoj grani repozitorijuma.
- Pregled cuDF dodatka za Apache Spark: aktuelne informacije o podešavanju i kompatibilnosti, uz izričito pravilo da se nepodržane operacije izvršavaju na Spark CPU-u. Pre primene proverite listu kompatibilnosti za konkretno izdanje.



