Skip to main content

MapReduceSpec

Struct MapReduceSpec 

Source
pub struct MapReduceSpec { /* private fields */ }
Expand description

A map-reduce operation.

The mapper is optional: without one, the input is fed straight to the reducer, which is how YTsaurus models a plain shuffle-and-reduce.

Implementations§

Source§

impl MapReduceSpec

Source

pub fn new<I, O, K>( reducer: impl Into<String>, inputs: I, outputs: O, reduce_by: K, ) -> Self

A map-reduce running reducer over inputs, grouped by reduce_by.

Source

pub fn with_mapper(self, command: impl Into<String>) -> Self

Adds a mapper phase.

Source

pub fn with_mapper_formats(self, input: DataFormat, output: DataFormat) -> Self

Selects the mapper phase’s input and output data formats.

A Skiff format must contain one schema per corresponding table. It may be called before or after Self::with_mapper.

Source

pub fn with_mapper_skiff_formats( self, input: SkiffFormat, output: SkiffFormat, ) -> Self

Uses validated Skiff formats for the mapper phase.

This compatibility convenience delegates to Self::with_mapper_formats.

Source

pub fn with_reducer_formats(self, input: DataFormat, output: DataFormat) -> Self

Selects the reducer phase’s input and output data formats.

A Skiff format must contain one schema per corresponding table, in the order YTsaurus uses for that phase.

Source

pub fn with_reducer_skiff_formats( self, input: SkiffFormat, output: SkiffFormat, ) -> Self

Uses validated Skiff formats for the reducer phase.

This compatibility convenience delegates to Self::with_reducer_formats.

Source

pub fn with_local_file(self, path: impl Into<String>) -> Self

Adds a Cypress file to both phases.

One binary usually serves both, dispatching on argv[1], so attaching it to each phase separately would only be a way to forget one. Order relative to MapReduceSpec::with_mapper does not matter: files are handed to the phases when the spec is rendered.

Source

pub fn with_local_file_named( self, path: impl Into<String>, name: impl AsRef<str>, ) -> Self

Adds a Cypress file to both phases under a different sandbox name.

See MapSpec::with_local_file_named for why the name matters.

Source

pub fn with_memory_limit(self, bytes: i64) -> Self

Sets the memory limit for both phases, in bytes.

As with the files, order relative to MapReduceSpec::with_mapper does not matter.

Source

pub fn with_sort_by<K>(self, columns: K) -> Self
where K: IntoIterator, K::Item: Into<String>,

Sets the sort columns, when they differ from the reduce columns.

Source

pub fn without_key_switch(self) -> Self

Turns off key_switch delivery to the reducer.

Only useful for a reducer that does not group — with it off, JobReader::groups sees the whole input as one group.

Source

pub fn skiff_table_mismatch(&self) -> Option<String>

Describes a Skiff format that does not match this spec’s table lists.

Only the counts this builder can know. What the mapper writes and what the reducer reads are shuffle streams, and how the output tables are split between the phases depends on mapper_output_table_count, which this builder does not model — a spec that sets it through Self::with_raw therefore has its output side left to the cluster rather than guessed at. The Go SDK declines to check its reduce phase for the same reason.

See MapSpec::skiff_table_mismatch for what an unchecked mismatch costs. Client::start_map_reduce checks this before sending the spec.

Source

pub fn with_raw(self, key: impl Into<String>, value: YsonValue) -> Self

Sets any spec field this builder does not model.

Source

pub fn to_yson(&self) -> YsonValue

Renders the spec.

Trait Implementations§

Source§

impl Clone for MapReduceSpec

Source§

fn clone(&self) -> MapReduceSpec

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MapReduceSpec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more