我解析了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/