PigSpec
PigSpec is an extention for rspec testing framework for Apache Pig. This extention can execute pig script with customize input relation data, and can get output relation data in ruby easily.
Installation
PigSpec uses Pig and PigUnit. Thus, install Pig and PigUnit first.
Second. install gem of pigspec.
If you using bundle, You write Gemfile to
gem 'pigspec'
And then execute:
$ bundle
Or install it yourself as:
$ gem install pigspec
Usage
First: write a test case in your rspec code. Sample:
require 'pigspec'
include PigSpec
describe 'SamplePigTest' do
it 'sample test' do
actual = pig do
script " in = LOAD 'inputfile' AS (query:chararray);\n out = LIMIT in 1;\n STORE out INTO 'outputfile';\n EOS\n with_args 'n=2'\n override 'in', %w(hoge hoge hoge)\n pickup 'out'\n end\n expect(actual).to eq([['hoge']])\n end\nend\n"
pig returns pickuped alias datas.
Readed datatype are following:
| Pig DataType | Ruby Class |
|---|---|
| bag | Array |
| tuple | Array |
| map | String |
| chararray | String |
| bytearray | String |
| datetime | String |
| long | Integer |
| integer | Integer |
| double | Float |
| float | Float |
| boolean | True/False |
Second: Set environment variable PIG_HOME to Your pig installed directory, And Run.
export PIG_HOME=<your pig installed dir>
spec
Contributing
- Fork it ( https://github.com/shiracha/pigspec/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request