Top Level Namespace

Defined Under Namespace

Modules: JRubyOnHadoop Classes: OutputWrapper

Instance Method Summary collapse

Instance Method Details

#to_java(value) ⇒ Object



52
53
54
55
56
57
58
59
# File 'lib/ruby_wrapper.rb', line 52

def to_java(value)
  case value
  when Integer then IntWritable.new(value)
  when String then t = Text.new; t.set(value); t
  when Array then value.to_java
  else raise "no match class: #{value.class}"
  end
end

#to_ruby(value) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/ruby_wrapper.rb', line 39

def to_ruby(value)
  case value
  when IntWritable, LongWritable then value.get
  when Text then value.to_string
  else 
    # for Java array
    if value.respond_to? :map
      value.map {|v| to_ruby(v)}
    else value # as is
    end
  end
end

#wrap_map(key, value, output, reporter, script, dslfile) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/ruby_wrapper.rb', line 13

def wrap_map(key, value, output, reporter, script, dslfile)
  require script
  output_wrapper = OutputWrapper.new(output)
  dslfile ? 
    map(to_ruby(key), to_ruby(value), output_wrapper, reporter, dslfile) :
    map(to_ruby(key), to_ruby(value), output_wrapper, reporter)
end

#wrap_reduce(key, values, output, reporter, script, dslfile) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/ruby_wrapper.rb', line 21

def wrap_reduce(key, values, output, reporter, script, dslfile)
  require script
  output_wrapper = OutputWrapper.new(output)
  dslfile ?
    reduce(to_ruby(key), to_ruby(values), output_wrapper, reporter, dslfile) :
    reduce(to_ruby(key), to_ruby(values), output_wrapper, reporter)
end

#wrap_setup(conf, script, dslfile) ⇒ Object



7
8
9
10
11
# File 'lib/ruby_wrapper.rb', line 7

def wrap_setup(conf, script, dslfile)
  require script
  paths = dslfile ? setup(conf, dslfile) : setup(conf)
  paths.to_java if paths
end