Class: PigSpec::JavaBridge

Inherits:
Object
  • Object
show all
Defined in:
lib/pigspec/javabridge.rb

Overview

bridge for java pig classies

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pig_home = ENV['PIG_HOME']) ⇒ JavaBridge

Returns a new instance of JavaBridge.



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/pigspec/javabridge.rb', line 8

def initialize(pig_home = ENV['PIG_HOME'])
  fail ArgumentError, 'pig_home must not be nil.' unless pig_home

  Rjb.add_classpath(File.join(pig_home, 'pig.jar'))
  Rjb.add_classpath(File.join(pig_home, 'pigunit.jar'))

  Rjb.load '.', ['-Dfile.encoding=UTF-8']

  Rjb.add_jar(File.join(pig_home, 'pig.jar'))
  Rjb.add_jar(File.join(pig_home, 'pigunit.jar'))

  import_classies
end

Instance Attribute Details

#data_type_enumObject (readonly)

Returns the value of attribute data_type_enum.



73
74
75
# File 'lib/pigspec/javabridge.rb', line 73

def data_type_enum
  @data_type_enum
end

Instance Method Details

#clusterObject



52
53
54
# File 'lib/pigspec/javabridge.rb', line 52

def cluster
  @pig_test_class.getCluster
end

#contextObject



40
41
42
# File 'lib/pigspec/javabridge.rb', line 40

def context
  @pig_test_class.getPigServer.getPigContext
end

#create_hdfs_tempObject



44
45
46
# File 'lib/pigspec/javabridge.rb', line 44

def create_hdfs_temp
  @file_localizer_class.getTemporaryPath(context).toString
end

#create_test(script, *args) ⇒ Object



35
36
37
38
# File 'lib/pigspec/javabridge.rb', line 35

def create_test(script, *args)
  instance = @pig_test_class.new script, args
  JavaPigTest.new self, instance
end

#schema(alias_name) ⇒ Object



60
61
62
63
64
65
66
67
# File 'lib/pigspec/javabridge.rb', line 60

def schema(alias_name)
  raw_schema = server.dumpSchema(alias_name)
  builder = @string_builder_class.new
  @schema_class.stringifySchema(builder, raw_schema, @data_type_enum.TUPLE)
  str_schema = builder.toString
  return nil if str_schema.split("\n").join('') == '()'
  str_schema
end

#serverObject



48
49
50
# File 'lib/pigspec/javabridge.rb', line 48

def server
  @pig_test_class.getPigServer
end

#stringify(alias_values) ⇒ Object



69
70
71
# File 'lib/pigspec/javabridge.rb', line 69

def stringify(alias_values)
  @string_util_class.join(alias_values, "\n")
end

#unloadObject



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/pigspec/javabridge.rb', line 22

def unload
  @pig_test_class = nil
  @cluster_class = nil
  @file_localizer_class = nil
  @pig_server_class = nil
  @schema_class = nil
  @string_builder_class = nil
  @data_type_enum = nil
  @string_util_class = nil
  Rjb.unload
  GC.start
end

#upload_text(text, path) ⇒ Object



56
57
58
# File 'lib/pigspec/javabridge.rb', line 56

def upload_text(text, path)
  cluster.copyFromLocalFile(text, path, true)
end