Վերադառնալ
Polars 2.0-ի նախնական թողարկում. հոսքային շարժիչը դառնում է լռելյայն
SiTech AI Team2 წთ. საკითხავი

Polars 2.0-ի նախնական թողարկում. հոսքային շարժիչը դառնում է լռելյայն

Polars-ը հրապարակել է 2.0-ի առաջին թեկնածուն. LazyFrame-ի բոլոր հարցումներն անցնում են հոսքային շարժիչի, տիպերի ստուգումը խստանում է, հեռացված API-ները հստակ սխալ են վերադարձնում։

Polars-ը հրապարակել է 2.0 տարբերակի առաջին թողարկման թեկնածուն. վերջնական թողարկումը սպասվում է առաջիկա շաբաթներին։ Ծրագրի բլոգում գլխավոր մշակող Ռիչի Վինկը ընդգծում է, որ հիմնական տարբերակի բարձրացումը նոր ֆունկցիաների մասին չէ, այլ հին նախագծային որոշումներից հրաժարվելու և լռելյայն կարգավորումները ավելի խելամիտ դարձնելու մասին է։

Հոսքային շարժիչը դառնում է լռելյայն

Ամենամեծ փոփոխությունն այն է, որ այժմ բոլոր LazyFrame հարցումները կատարվում են հոսքային (streaming) շարժիչով։ collect()-ի կանչը զգալիորեն նվազեցնում է հիշողության սպառումը և բարելավում արագությունը. ծրագրի գնահատմամբ՝ ամբողջությամբ հոսքային շարժիչը հեշտությամբ 5 անգամ ավելի արագ է։

Հենց դրա համար էլ պահանջվեց հիմնական տարբերակի բարձրացում. հոսքային շարժիչը չի երաշխավորում տողերի հերթականությունը join, group_by և unpivot գործողությունների դեպքում։ Դիտարկելի հերթականությունից կախված կոդը պետք է այն բացահայտ միացնի maintain_order=True պարամետրով, իսկ հին՝ հիշողության վրա աշխատող շարժիչը լռելյայն պահել ցանկացողները կարող են դա անել pl.Config.set_engine_affinity-ի միջոցով։

Ավելի խիստ՝ ավելի հասկանալի սխալներով

Polars 2.0-ը խստացնում է նաև այն վարքագիծը, որը նախկինում լուռ ձախողվում էր։ Տարբեր տիպերի վրա կիրառվող is_in արտահայտությունը նախկինում երկու կողմերն էլ բերում էր ընդհանուր գերտիպի, նույնիսկ երբ փոխարկումը կորցնում էր տվյալներ. բլոգում բերված է օգտատիրոջ ID-ի համեմատություն 2^53-ից մեծ արժեքի հետ, որտեղ կլորացումը կեղծ համընկնում էր տալիս. այժմ նման դեպքը սխալ է արձակում։ Հորիզոնական concat-ը ստուգում է երկարությունները, այլ ոչ թե լցնում է null-երով, և հին վարքագիծը մնում է միայն բացահայտ "horizontal_extend" տարբերակով։ Մի քանի երկիմաստ cast հեռացվել է հատուկ մեթոդների օգտին, օրինակ՝ .cat.to() և .str.to_date()։

Հեռացված API-ների համար ավելացվել է երկու տիպիզացված բացառություն՝ AttributeRemovedError և ArgumentRemovedError, որոնց հաղորդագրությունները մատնանշում են նոր մեթոդը. melt-ը դարձել է unpivot, իսկ join_nulls-ը վերանվանվել է nulls_equal։ Հեղինակը նաև նշում է, որ collect_schema()-ով սխեմայի վաղ ստուգումը օգտակար է AI-ագենտների համար, որոնք կարող են ստուգել հարցման կառուցվածքը մինչև տվյալների մշակումը։

Ինչ է սպասվում հետո

Վինկի խոսքով՝ 2.x-ը շատ ավելի հեռու կգնա, քան 1.x-ը. հոսքային շարժիչի համար հիշողությունից դուրս մշակում, IO-պլագինների նոր ձևավորում, թիմի գնահատմամբ ամենաարագ S3 ընթերցիչի աշխատանքները, SQL-ի ավելի լայն աջակցություն, ծախսի վրա հիմնված պլանավորիչ, join-երի վերադասավորում և mmap-ի հեռացում՝ խողովակաշարերը մինչև վերջ ասինխրոն դարձնելու համար։ Ամբողջական միգրացիայի ուղեցույցն արդեն հասանելի է, իսկ թեկնածուն տեղադրվում է pip install polars==2.0rc1 հրամանով։

SSiTech

SiTech — AI-ով հզորացված վեբ մշակում

Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։