class Spark::Command::PartitionBy::Base

Public Instance Methods

lazy_run(iterator, *) click to toggle source
# File lib/spark/command/basic.rb, line 155
def lazy_run(iterator, *)
  iterator.flat_map do |item|
    make_partition_item(item)
  end
end
prepare() click to toggle source
Calls superclass method Spark::Command::Base#prepare
# File lib/spark/command/basic.rb, line 140
def prepare
  super

  # Default. Keep it after super because Sorting has own key_function.
  @key_function ||= lambda{|x| x[0]}
end
run(iterator, *) click to toggle source
# File lib/spark/command/basic.rb, line 147
def run(iterator, *)
  iterator.map! do |item|
    make_partition_item(item)
  end
  iterator.flatten!(1)
  iterator
end

Private Instance Methods

make_partition_item(item) click to toggle source
# File lib/spark/command/basic.rb, line 163
def make_partition_item(item)
  [
    pack_long(@partition_func.call(@key_function[item])),
    item
  ]
end