hadoop - Apache Pig中的DEFINE语句

标签 hadoop mapreduce global-variables apache-pig

我解析了json输入

--Load Json 
loadJson =  LOAD '$inputJson' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad=true') AS (json:map []);
'$inputJson'-是具有json结构的文件。

然后我解析json以获取我的 pig 工作的一些参数
--PARSING JSON
--Source : Is the input file I need to process in Pig job
a = FOREACH loadJson GENERATE json#'source' AS ParsedInput;

然后将其存储在“a”中“a”包含输入路径,即/home/sree/foo.txt
现在我需要将该数据加载到一个包中。接下来,我需要执行正常的加载语句
inputdata = LOAD "/home/sree/foo.txt";

代替这个,我必须做
inputdata = LOAD a;

这就是我要实现的目标。

到目前为止,我尝试的是,我使用了define
--Source
a = FOREACH loadJson GENERATE json#'source' AS ParsedInput;

-- define a global constant for storage
define myIn "a";

--Load data
inputdata = LOAD "$myIn" ;
dump data;

但显示意外的内部错误。未定义的参数:

如何加载该文件?

最佳答案

据我所知,pig不允许在DEFINE中使用该关系来代替语句。
引用这个

http://pig.apache.org/docs/r0.10.0/basic.html#define-udfs

关于hadoop - Apache Pig中的DEFINE语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25055936/

相关文章:

java - pig : UDF not returning expected resultset

MongoDB 聚合和 MapReduce 一样慢?

android - 使用 Application 对象存储数据和全局变量

python - 全局变量无法传输值python

c++ - 头文件中的全局数组...是否必须指定大小?

hadoop - Hiveserver2 无法从远程连接获取查询结果

mysql - 通过datanode连接hivemetastore

hadoop - 什么时候在 mapreduce 作业执行中分配 reducer 的数量/节点?

hadoop - 手动将任务分配给计算机

python - hadoop中的语法错误: word unexpected (expecting "do") map. py