Sha256: 158b9474fcc3de4e9b5547da0bcc49226ae193db8347a665296a90e05270c033

Contents?: true

Size: 1.62 KB

Versions: 2

Compression:

Stored size: 1.62 KB

Contents

require 'init'
require 'core'
require 'hive_like'

include HadoopDsl::HiveLike

describe HiveLikeSetup do
  it 'should load data' do
    script = create_tmp_script(%Q!load_data "hive-like/inputs", items;!)
    conf = mock('conf')
    conf.should_receive(:output_key_class=).once
    conf.should_receive(:output_value_class=).once

    setup = HiveLikeSetup.new(script, conf)
    setup.run
    setup.paths[0].should == 'hive-like/inputs'
    setup.paths[1].should == 'hive-like/outputs'
  end
end

describe HiveLikeMapper do
  before do
    @value = 'apple, 3, 100'
  end

  it 'should create table' do
    mapper = HiveLikeMapper.new(nil, nil, @value)
    mapper.create_table('items', 'item', 'STRING', 'quantity', 'INT', 'price', 'INT');
    mapper.table.name.should == 'items'
    mapper.table.column(0).should == 'item'
    mapper.table.column(1).should == 'quantity'
  end

  it 'should select' do
    mapper = HiveLikeMapper.new(nil, nil, @value)
    mapper.create_table('items', 'item', 'STRING', 'quantity', 'INT', 'price', 'INT');
    mapper.select("item", "quantity", "price", "from", "items")
    mapper.emitted.first.should == {'items' => 'apple, 3, 100'}
  end

  it 'should pre process script body' do
    body = "select foo, bar from table;\n"
    mapper = HiveLikeMapper.new(nil, nil, @value)
    processed = mapper.pre_process(body)
    processed.should == %Q!select("foo", "bar", "from", "table")\n!
  end
end

describe HiveLikeReducer do
  it 'should select as identity' do
    key = 'Lorem'
    values = [1, 1, 1]
    reducer = HiveLikeReducer.new(nil, key, values)

    reducer.select
    reducer.emitted[0].should == {'Lorem' => 1}
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hadoop-rubydsl-0.0.2 spec/hive_like_spec.rb
hadoop-rubydsl-0.0.1 spec/hive_like_spec.rb