2017-02-06 11 views
0

Я пытаюсь разобрать ниже входа (есть 2 записей в этом входе) с использованием JSon погрузчик ElephantbirdApache PIG, ELEPHANTBIRDJSON Loader

[{ "node_disk_lnum_1": 36, "node_disk_xfers_in_rate_sum": +136,40000000000001» node_disk_bytes_in_rate_22 ": 187392,0, "node_disk_lnum_7": 13}]

[{" node_disk_lnum_1 ": 36, "node_disk_xfers_in_rate_sum": 105.2," node_disk_bytes_in_rate_22" : 123084,8, "node_disk_lnum_7": 13}]

Вот мой синтаксис:

register '/home/data/Desktop/elephant-bird-pig-4.1.jar'; 

a = LOAD '/pig/tc1.log' USING 
com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') as (json:map[]); 

b = FOREACH a GENERATE flatten(json#'node_disk_lnum_1') AS 
node_disk_lnum_1,flatten(json#'node_disk_xfers_in_rate_sum') AS 
node_disk_xfers_in_rate_sum,flatten(json#'node_disk_bytes_in_rate_22') AS 
node_disk_bytes_in_rate_22, flatten(json#'node_disk_lnum_7') AS 
node_disk_lnum_7; 

DESCRIBE b; 

б описывают результат:

б: {node_disk_lnum_1: ByteArray, node_disk_xfers_in_rate_sum: ByteArray, node_disk_bytes_in_rate_22: ByteArray, node_disk_lnum_7: ByteArray}

c = FOREACH b GENERATE node_disk_lnum_1; 

DESCRIBE c; 

C: {node_disk_lnum_1: ByteArray}

DUMP c; 

Ожидаемые результаты:

36, +136,40000000000001, 187392,0, 13

36, 105.2, 123084,8, 13

Бросив ошибку ниже

2017-02-06 01: 05: 49337 [главная] INFO org.apache.pig.tools.pigstats.ScriptState - Pig функции, используемые в сценария: UNKNOWN 2017- 02-06 01: 05: 49,386 [main] INFO org.apache.pig.data.SchemaTupleBackend - Key [pig.schematuple] не был set ... не будет генерировать код. 2017-02-06 01: 05: 49387 [Основная] ИНФО org.apache.pig.newplan.logical.optimizer.LogicalPlanOptimizer - {RULES_ENABLED = [AddForEach, ColumnMapKeyPrune, ConstantCalculator, GroupByConstParallelSetter, LimitOptimizer, LoadTypeCastInserter, MergeFilter, MergeForEach, PartitionFilterOptimizer, PredicatePushdownOptimizer, PushDownForEachFlatten, PushUpFilter, SplitFilter, StreamTypeCastInserter]} 2017-02-06 01: 05: 49390 [главная] INFO org.apache.pig.newplan.logical.rules.ColumnPruneVisitor - требуется карта ключ для a: $ 0 -> [node_disk_lnum_1, node_disk_xfers_in_rate_sum, node_disk_bytes_in_rate_22, node_disk_lnum_7]

2017-02-06 01: 05: 49,395 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler - Порог конкатенации файлов: 100 оптимистичен? false 2017-02-06 01: 05: 49,398 [main] INFO org.apache.pig.backend.hasoop.executionengine.mapReduceLayer.MultiQueryOptimizer - Размер плана MR перед оптимизацией: 1 2017-02-06 01: 05: 49,398 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer - План MR размер после оптимизации: 1 2017-02-06 01: 05: 49,425 [main] INFO org.apache.pig.tools.pigstats.mapreduce.MRScriptState - Pig настройки скрипта добавлены в задание 2017-02-06 01:05 : 49,426 [main] INFOorg.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler - mapred.job.reduce.markreset.buffer.percent не установлен, установлено значение по умолчанию 0.3 2017-02-06 01 : 05: 49,428 [main] ОШИБКА org.apache.pig.tools.grunt.Grunt - ОШИБКА 2998: необработанная внутренняя ошибка . com/twitter/elephantbird/util/HadoopCompat

Помогите, что мне не хватает?

ответ

0

У вас нет никаких вложенных данных в вашем JSON, поэтому удалить -nestedload

a = LOAD '/pig/tc1.log' USING com.twitter.elephantbird.pig.load.JsonLoader() as (json:map[]); 
+0

Спасибо за решение :) @inquisitive_mind –