جدول¶

  • 2021-12-15

اجرای توزیع Hail از جدول DataFrame یا SQL.

برای خواندن یک جدول که با Table. Write () نوشته شده است از read_table () استفاده کنید. از to_spark () و table. from_spark () استفاده کنید تا با عملکرد SQL و یادگیری ماشین Pyspark در بین باشید.

مثالهای زیر از جدول 1 و جدول 2 استفاده می شود ، که از پرونده های متنی با استفاده از Import_Table () وارد می شوند.

حاشیه نویسی های جدید را تعریف کنید:

ردیف های فیلتر جدول:

محاسبه آمار جمع آوری جهانی:

گروه توسط یک میدان و جمع برای تولید یک جدول جدید:

جداول را با هم در یک عبارت حاشیه نویسی بپیوندید:

یک عبارت ساختار را شامل همه زمینه های جهانی برمی گرداند.

بیان ساختاری از تمام زمینه های ردیف ردیف ، از جمله کلیدها را برمی گرداند.

یک عبارت ساختار را شامل همه زمینه های بدون کلید ردیف است.

شاخص عدد صحیح هر ردیف را به عنوان یک قسمت ردیف جدید اضافه کنید.

جمع آوری بیش از ردیف ها به یک مقدار محلی.

ارزیابی کنید که آیا یک بیان بولی برای همه ردیف ها صادق است یا خیر.

زمینه های جدید جهانی را اضافه کنید.

جدول را به ردیف هایی که کلید آن در موارد دیگر ظاهر نمی شود ، فیلتر می کند.

ارزیابی کنید که آیا یک بیان بولی برای حداقل یک ردیف صادق است یا خیر.

این جدول را در حافظه ادامه دهید.

جدول را با نوشتن و خواندن جدول به دیسک بزنید.

ردیف های جدول را در یک لیست محلی جمع کنید.

مقادیر را برای هر کلید منحصر به فرد در یک آرایه جمع کنید.

تعداد ردیف های جدول را بشمارید.

اطلاعات مربوط به زمینه های جدول را چاپ کنید.

کلیدهای اختصاصی ، نگه داشتن یک ردیف برای هر کلید منحصر به فرد.

زمینه ها را از جدول رها کنید.

انواع پیچیده را در ساختارها و آرایه ها گسترش دهید.

ردیف ها را در امتداد یک زمینه از نوع آرایه یا مجموعه منفجر کنید و کل ردیف را برای هر عنصر کپی کنید.

صادرات به یک فایل متنی.

ساختارهای تو در تو را مسطح می کند.

جدول از Pandas dataframe ایجاد کنید

DataFrame Pyspark SQL را به یک جدول تبدیل کنید.

گروه توسط یک کلید جدید برای استفاده با GroupEdtable. aggregate ().

جدول زیر مجموعه به اولین ردیف ها.

مقادیر ردیف را به گونه ای افشا کنید که گویی در یک فرهنگ لغت نگاه می کنید و با Exprs نمایه می شوید.

متغیرهای جهانی این جدول را برای استفاده در یک زمینه بیان دیگر برگردانید.

با هم به دو جدول بپیوندید.

جدول کلیدی توسط مجموعه جدیدی از زمینه ها.

بسیاری از جداول را در یک زیپ ترکیب کنید

تعداد پارتیشن های جدول را برمی گرداند.

به طور ساده لوحانه تعداد پارتیشن ها را کاهش می دهد.

مرتب سازی بر اساس قسمتهای مشخص شده ، پیش فرض سفارش صعودی.

یک آرایه محلی از ساختارها را در یک جدول توزیع شده موازی کنید.

این جدول را در حافظه یا دیسک ادامه دهید.

زمینه های جدول را تغییر نام دهید.

تعداد پارتیشن ها را تغییر دهید.

جدول را با نگه داشتن هر ردیف با احتمال p.

زمینه های موجود را انتخاب کنید یا زمینه های جدید را با نام ایجاد کنید و بقیه را رها کنید.

زمینه های جهانی موجود را انتخاب کنید یا زمینه های جدیدی را با نام ایجاد کنید و بقیه را رها کنید.

جدول را به ردیف هایی که کلید آن در موارد دیگر ظاهر می شود ، فیلتر می کند.

چند ردیف اول جدول را روی کنسول چاپ کنید.

اطلاعات خلاصه را در مورد زمینه های جدول محاسبه و چاپ کنید.

جدول زیر مجموعه به آخرین ردیف ها.

اولین ردیف های N جدول را در یک لیست محلی جمع کنید.

یک جدول ماتریس را از یک جدول در نمایندگی مختصات بسازید.

یک جدول ماتریس را از یک جدول در نمای اصلی ردیف بسازید.

این جدول را به یک Dataframe Pandas تبدیل می کند.

این جدول را به یک DataFrame Spark تبدیل می کند.

زمینه های جدید را اضافه کنید و زمینه های ارجاع شده را رها کنید.

مشابه جدول. ANNOTATE_GLOBALS () ، اما زمینه های ارجاع شده را قطره می کند.

اتحادیه های مختلف جدول را اتحاد کنید.

Unpersist این جدول از حافظه/دیسک.

زمینه ها را برای جداول مجزا بنویسید.

شاخص عدد صحیح هر ردیف را به عنوان یک قسمت ردیف جدید اضافه کنید.

این روش جدولی را با یک فیلد جدید برمی‌گرداند که نام آن با پارامتر name داده شده است، با نوع tint64. مقدار این فیلد شاخص عدد صحیح هر سطر است که از 0 شروع می شود. روش هایی که به ترتیب احترام می گذارند (مانند Table. take() یا Table. export()) ردیف ها را به ترتیب برمی گرداند.

این روش همچنین برای ایجاد یک شاخص اعداد صحیح منحصر به فرد برای ردیف های یک جدول مفید است تا انواع پیچیده تر را بتوان به عنوان یک عدد ساده به دلایل عملکرد کدگذاری کرد.

name (str) – نام فیلد فهرست.

جدول - جدول با یک فیلد فهرست جدید.

جمع (expr, _localize = True ) [منبع] ¶

جمع آوری بیش از ردیف ها به یک مقدار محلی.

جمع کردن روی ردیف ها:

این روش از تجمیع در ردیف‌ها پشتیبانی می‌کند (و انتظار دارد!).

expr (عبارت) - عبارت تجمعی.

any – مقدار جمع شده وابسته به expr.

ارزیابی کنید که آیا یک بیان بولی برای همه ردیف ها صادق است یا خیر.

تست کنید که آیا C1 در تمام سطرهای جدول بزرگتر از 5 است یا خیر:

expr (BooleanExpression) - عبارتی برای آزمایش.

فیلد Y را با محاسبه مربع X اضافه کنید:

اضافه کردن چندین فیلد به طور همزمان:

named_exprs (کلمه کلیدی args از Expression) - عباراتی برای فیلدهای جدید.

جدول - جدول با فیلدهای جدید.

زمینه های جدید جهانی را اضافه کنید.

یک فیلد جهانی جدید اضافه کنید:

این روش از تجمیع پشتیبانی نمی کند.

named_exprs (varargs of Expression) - عبارات حاشیه نویسی.

جدول – جدول با فیلد(های) جهانی جدید.

جدول را به ردیف هایی که کلید آن در موارد دیگر ظاهر نمی شود ، فیلتر می کند.

دیگر (جدول) - جدول با فیلد(های) کلید سازگار.

نوع کلید جدول باید با نوع کلید دیگری مطابقت داشته باشد.

این روش طرح واره جدول را تغییر نمی دهد. این روشی برای فیلتر کردن جدول به کلیدهایی است که در جدول دیگری وجود ندارد.

برای محدود کردن کلیدهای موجود در دیگر، از semi_join() استفاده کنید.

ممکن است کلید زدن میز سمت چپ با کلید سمت راست گران باشد. در این حالت می توان با استفاده از یک فیلد غیر کلیدی یک anti-join را به صورت زیر پیاده سازی کرد:

ارزیابی کنید که آیا یک بیان بولی برای حداقل یک ردیف صادق است یا خیر.

تست کنید که آیا C1 برابر است با 5 ردیف در هر ردیف از جدول:

expr (BooleanExpression) - عبارت بولی.

bool - اگر گزاره برای هر ردیفی برای True ارزیابی شود درست است، در غیر این صورت False.

این جدول را در حافظه ادامه دهید.

جدول را در حافظه نگه دارید:

این روش نام مستعار persist ("MEMORY_ONLY") است.

نقطه بازرسی (خروجی، بازنویسی = نادرست، مرحله_محلی = نادرست، _codec_spec = هیچ، _read_if_exists = نادرست، _intervals = هیچ، _filter_intervals = نادرست) [منبع] ¶

جدول را با نوشتن و خواندن جدول به دیسک بزنید.

خروجی ( str ) - مسیری که در آن باید نوشتن.

stage_local (bool) - اگر True باشد، خروجی اصلی قبل از کپی شدن در خروجی در حافظه محلی موقت نوشته می شود.

رونویسی (bool) - اگر درست است، یک فایل موجود را در مقصد بازنویسی کنید.

مسیری را که قبلاً منبع ورودی برای پرس و جو است، ننویسید یا علامت بزنید. این می تواند باعث از دست رفتن اطلاعات شود.

نام مستعار برای write() به دنبال read_table() . امکان خواندن فایل در این مسیر بعدا با read_table() وجود دارد.

ردیف های جدول را در یک لیست محلی جمع کنید.

لیستی از تمام رکوردهای X را جمع آوری کنید:

این متد لیستی را برمی گرداند که عناصر آن از نوع Struct هستند. فیلدهای این ساختارها را می‌توان مشابه فیلدهای روی جدول، با استفاده از روش‌های نقطه‌ای (struct. foo) یا فهرست‌بندی رشته‌ای (struct['foo']) مشاهده کرد.

استفاده از این روش می تواند باعث ایجاد خطا در حافظه شود. فقط میزهای کوچک جمع کنید.

لیست ساختار - لیست ردیف ها.

collect_by_key ( name = 'values' ) [منبع] ¶

مقادیر را برای هر کلید منحصر به فرد در یک آرایه جمع کنید.

به یک جدول کلیددار نیاز دارد.

ترتیب آرایه مقادیر تضمین نشده است.

نام (str) - نام فیلد برای همه مقادیر در هر کلید.

تعداد ردیف های جدول را بشمارید.

اطلاعات مربوط به زمینه های جدول را چاپ کنید.

استدلال ویجت تجربی است.

Handler (قابل تماس [[STR] ، هیچ]) - عملکرد کنترل کننده برای رشته برگشتی.

ویجت (BOOL) - یک ویجت IPython تعاملی ایجاد کنید.

کلیدهای اختصاصی ، نگه داشتن یک ردیف برای هر کلید منحصر به فرد.

به یک جدول کلیددار نیاز دارد.

ردیف انتخاب شده در هر کلید مجزا تضمین نشده است.

زمینه ها را از جدول رها کنید.

زمینه های C1 و C2 را با استفاده از رشته ها رها کنید:

Drop Fields C1 و C2 را با استفاده از منابع میدانی:

لیستی از قسمت ها را رها کنید:

از این روش می توان برای رها کردن زمینه های جهانی یا ردیف استفاده کرد. آرگومان ها می توانند یا رشته ها ("زمینه") یا منابع میدانی سطح بالا باشند (جدول. فیلد یا جدول ['زمینه']).

exprs (varargs str یا بیان) - نام زمینه ها برای رها کردن یا عبارات مرجع میدانی.

جدول - جدول بدون زمینه های مشخص.

انواع پیچیده را در ساختارها و آرایه ها گسترش دهید.

تنها انواع مختلفی که پس از این روش باقی خواهد ماند عبارتند از: tbool ، tint32 ، tint64 ، tfloat64 ، tfloat32 ، tarray ، tstruct.

توجه داشته باشید ، expand_types همیشه یک جدول بدون کلید را برمی گرداند.

ردیف ها را در امتداد یک زمینه از نوع آرایه یا مجموعه منفجر کنید و کل ردیف را برای هر عنصر کپی کنید.

People_table یک جدول با سه زمینه است: نام ، سن و فرزندان.

Table. Explode () می تواند برای تولید یک ردیف مشخص برای هر عنصر در زمینه کودکان استفاده شود:

از پارامتر نام می توان برای تولید نام های مناسب تر استفاده کرد:

هر ردیف برای هر عنصر زمینه کپی می شود. عملیات EXPODE عناصر را در یک زمینه از نوع آرایه باز می کند یا در ردیف خاص خود قرار می گیرد. اگر یک آرایه یا مجموعه خالی منفجر شود ، کل ردیف از جدول خارج می شود. در مثال بالا ، توجه کنید که نام "کارولین" در جدول منفجر شده یافت نمی شود.

آرایه ها یا مجموعه های گمشده به صورت خالی رفتار می شوند.

در حال حاضر ، اگر زمینه یک قسمت سطح بالا از جدول نباشد ، ممکن است از آرگومان نام استفاده نشود (به عنوان مثال ممکن است نام با HT. FOO استفاده شود اما HT. FOO. BAR نیست).

زمینه (STR یا بیان)-نام یا بیان سطح بالا.

نام (Str یا None) - اگر هیچ کدام نیست ، قسمت منفجر شده را به نام تغییر نام دهید.

صادرات (خروجی ، types_file = هیچ یک ، هدر = واقعی ، موازی = هیچ ، تعیین کننده = '\ t') [منبع]

صادرات به یک فایل متنی.

صادرات به یک پرونده جدا شده از برگه:

صادر کردن پرونده های بزرگ با پسوند . BGZ ، که از یک کدک فشرده سازی بلوک استفاده می شود ، بسیار توصیه می شود. این پرونده ها را می توان به صورت بومی با هر روش تگرگ ، و همچنین با GZIP. OPEN Python و R Read. Table خوانده شد.

ساختارهای تو در تو به عنوان JSON صادر می شوند. به منظور صادر کردن زمینه های ساختار تو در تو به عنوان زمینه های جداگانه در جدول حاصل ، ابتدا از Flatten () استفاده کنید.

به مسیری که از همان خط لوله خوانده می شود صادر نکنید.

خروجی (STR) - URI که در آن می توانید پرونده صادر شده را بنویسید.

types_file (str ، اختیاری) - URI که در آن می توانید فایل حاوی اطلاعات نوع فیلد را بنویسید.

هدر (BOOL) - یک هدر را در پرونده قرار دهید.

موازی (STR ، اختیاری) - اگر هیچ کدام ، یک پرونده واحد تولید می شود ، در غیر این صورت پوشه ای از پرونده های فایل تولید می شود. اگر "جداگانه_در" باشد ، پرونده هدر به طور جداگانه از قسمت پرونده ها خروجی است. اگر "header_per_shard" ، هر یک از پرونده ها دارای یک هدر است. اگر به هیچ وجه تنظیم شود ، صادرات کندتر خواهد بود.

تعیین کننده (STR) - تعیین کننده زمینه.

ردیف هایی را که C1 برابر است 5 نگه دارید:

ردیف هایی را که C1 برابر است با 10 حذف کنید:

بیان EXPR برای هر ردیف جدول ارزیابی می شود. اگر نگه داشتن صحیح باشد ، آنگاه ردیف هایی که EXPR ارزیابی می کند True نگه داشته می شود (فیلتر ردیف هایی را که در آن گزاره ارزیابی می کند ، حذف می کند). اگر نگه داشتن نادرست باشد ، پس از آن ردیف هایی که EXPR ارزیابی می کند True برداشته می شود (فیلتر ردیف هایی را که در آن گزاره ارزیابی می کند ، نگه می دارد).

هنگامی که EXPR به گم شدن ارزیابی می شود ، ردیف بدون در نظر گرفتن نگه داشتن حذف می شود.

این روش از تجمیع پشتیبانی نمی کند.

EXPR (BOOL یا Booleanexpression) - بیان فیلتر.

نگه دارید (BOOL) - ردیف هایی را که EXPR صحیح است نگه دارید.

ساختارهای تو در تو را مسطح می کند.

یک جدول با امضای در نظر بگیرید

و کلید الف. نتیجه Flatten است

توجه داشته باشید ، سازه های داخل مجموعه هایی مانند آرایه ها یا مجموعه ها مسطح نمی شوند.

توجه داشته باشید ، نتیجه Flatten همیشه بدون کلید است.

مسطح کردن یک جدول زمینه هایی را تولید می کند که با استفاده از جدول قابل ارجاع نیستند. نحو ، به عنوان مثال"A. B". این زمینه ها را با استفاده از جستجوی براکت مربع ارجاع دهید: جدول ['A. B'].

جدول - جدول با یک طرحواره مسطح (بدون زمینه ساختار).

جدول از Pandas dataframe ایجاد کنید

DF (pandas. dataframe) - pandas dataframe.

کلید (STR یا لیست STR) - زمینه های کلیدی.

DataFrame Pyspark SQL را به یک جدول تبدیل کنید.

انواع داده های Spark SQL به شرح زیر به انواع تگرگ تبدیل می شوند:

انواع داده های Spark SQL در حال حاضر پشتیبانی نشده است.

DF (pyspark. sql. dataframe) - pyspark dataframe.

کلید (STR یا لیست STR) - زمینه های کلیدی.

جدول - جدول ساخته شده از DataFrame Spark SQL.

یک عبارت ساختار را شامل همه زمینه های جهانی برمی گرداند.

نوع داده ساختار Globals:

تعداد زمینه های جهانی:

ساختار بیان - ساختار همه زمینه های جهانی.

گروه توسط یک کلید جدید برای استفاده با GroupEdtable. aggregate ().

میانگین مقدار x و جمع z را در هر شناسه منحصر به فرد محاسبه کنید:

گروه با سطل ارتفاع و محاسبه نسبت جنسی در هر سطل:

این عملکرد همیشه توسط groupedtable. aggregate () دنبال می شود. پیوند اسناد را در مرحله جمع آوری دنبال کنید.

با استفاده از Group_by

Group_by و روش های خواهر و برادر آن (MatrixTable. Group_Rows_by () و MatrixTable. Group_Cols_By ()) هر دو طول متغیر (F (x ، y ، z)) و کلمه کلیدی (f (a = x ، b = y ، c = z) را بپذیرید.) استدلال ها

آرگومان های با طول متغیر می توانند یا رشته ها یا عباراتی باشند که یک قسمت (احتمالاً تو در تو) از جدول را ارجاع می دهند. آرگومان های کلمه کلیدی می توانند عبارات دلخواه باشند.

سه کاربرد زیر همگی معادل هستند و یک گروه بندی شده را با گروه های C1 و C2 از جدول 1 گروه بندی می کنند.

اول ، آرگومان های رشته ای با طول متغیر:

دوم ، آرگومان های مرجع به طول متغیر:

آخرین ، آرگومان های کلمه کلیدی بیان:

علاوه بر این ، نحو آرگومان با طول متغیر همچنین به منابع میدانی تو در تو اجازه می دهد. با توجه به قسمت ساختار زیر S:

دو کاربرد زیر معادل است ، گروه بندی بر اساس یک زمینه ، x:

استدلال کلمه کلیدی نحو عبارات دلخواه را مجاز می کند:

این نحو ها را می توان با هم مخلوط کرد ، با این شرط که تمام آرگومان های کلیدی باید به دلیل محدودیت های زبان پایتون در انتها بیایند.

این روش از تجمع در عبارات کلیدی پشتیبانی نمی کند.

exprs (varargs نوع str یا بیان) - نام فیلد یا عبارات مرجع میدانی.

name_exprs (استدلال کلمات کلیدی از بیان نوع) - نام و عبارات مربوط به محاسبه آنها.

جدول گروه بندی شده - جدول گروه بندی شده ؛برای تکمیل تجمع از groupedtable. aggregate () استفاده کنید.

جدول زیر مجموعه به اولین ردیف ها.

زیر مجموعه به سه ردیف اول:

تعداد پارتیشن های موجود در جدول جدید برابر با تعداد پارتیشن های حاوی ردیف های N اول است.

N (int) - تعداد ردیف ها برای شامل.

جدول - جدول شامل n ردیف اول.

index ( * exprs , all_matches = False ) [منبع] ¶

مقادیر ردیف را به گونه ای افشا کنید که گویی در یک فرهنگ لغت نگاه می کنید و با Exprs نمایه می شوید.

در مثال زیر، هر دو جدول 1 و جدول 2 با یک شناسه فیلد از نوع int کلید می زنند.

استفاده از کلید به عنوان تنها عبارت شاخص معادل پاس دادن همه فیلدهای کلیدی به صورت جداگانه است:

همچنین می توان از فیلدها یا عبارات غیر کلیدی به عنوان عبارات شاخص استفاده کرد:

()Table. index برای نمایش فیلدهای یک جدول برای استفاده در عبارات مربوط به جدول دیگر یا فیلدهای جدول ماتریسی استفاده می شود. نتیجه فراخوانی متد یک عبارت ساختاری است که در همان محدوده exprs قابل استفاده است، درست مثل اینکه exprs برای جستجوی مقادیر جدول در یک فرهنگ لغت استفاده شده است.

نوع عبارت ساختار مانند row_value() جدول ایندکس شده است (فیلدهای کلیدی حذف می شوند، زیرا در قالب عبارات شاخص موجود هستند).

یک سینتکس مختصر برای Table. index() با استفاده از براکت مربع وجود دارد (Syntax __getitem__ Python). این نحو ترجیح داده می شود.

exprs (args با طول متغیر بیان) - عبارات شاخص.

all_matches (bool) – تجربی. اگر True باشد، مقدار عبارت آرایه ای از همه تطابق است.

متغیرهای جهانی این جدول را برای استفاده در یک زمینه بیان دیگر برگردانید.

با هم به دو جدول بپیوندید.

جدول 1 را به جدول 2 بپیوندید تا table_joined تولید شود:

جداول در ردیف هایی که فیلدهای کلیدی آنها دارای مقادیر مساوی هستند به هم متصل می شوند. مقادیر از دست رفته هرگز مطابقت ندارند. گنجاندن یک ردیف بدون تطابق در جدول مقابل به نوع اتصال بستگی دارد:

inner - فقط ردیف هایی با یک کلید منطبق در جدول مقابل در جدول حاصل گنجانده شده است.

چپ – تمام سطرهای جدول سمت چپ در جدول حاصل گنجانده شده است. اگر ردیفی در جدول سمت چپ با جدول سمت راست مطابقت نداشته باشد، فیلدهای مشتق شده از جدول سمت راست گم خواهند شد.

راست - تمام سطرهای جدول سمت راست در جدول حاصل گنجانده شده است. اگر ردیفی در جدول سمت راست در جدول سمت چپ مطابقت نداشته باشد، فیلدهای مشتق شده از جدول سمت چپ از بین خواهند رفت.

بیرونی - همه سطرها در جدول حاصل گنجانده شده است. اگر ردیفی در جدول سمت راست در جدول سمت چپ مطابقت نداشته باشد، فیلدهای مشتق شده از جدول سمت چپ از بین خواهند رفت. اگر ردیفی در جدول سمت راست در جدول سمت چپ مطابقت نداشته باشد، فیلدهای مشتق شده از جدول سمت چپ از بین خواهند رفت.

هر دو جدول باید تعداد کلیدهای یکسانی داشته باشند و انواع مربوط به هر کلید باید یکسان باشد (ترتیب مهم است)، اما نام کلیدها می تواند متفاوت باشد. برای مثال، اگر جدول 1 با فیلدهای ['a', 'b']، هر دو از نوع int32 و table2 با فیلدهای ['c', 'd'] کلید می‌خورد، هر دو از نوع int32، آن‌گاه دو جدول می‌توانندبه یکدیگر متصل شوند (ردیف های آنها در جایی که table1. a == table2. c و table1. b == table2. d ) به هم متصل می شوند.

فیلدهای کلیدی و ترتیب جدول سمت چپ حفظ می شوند، در حالی که فیلدهای کلیدی از جدول سمت راست در نتیجه وجود ندارند.

این روش‌های پیوستن، اتصال محصول سنتی دکارتی را پیاده‌سازی می‌کنند و تعداد رکوردها در جدول حاصل می‌تواند از تعداد رکوردهای سمت چپ یا راست در صورت وجود کلیدهای تکراری بیشتر باشد.

راست ( جدول ) – جدول برای پیوستن.

how ( str ) – Join type. یکی از "درونی"، "چپ"، "راست"، "بیرونی"

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.