当我尝试运行pig -help时,我得到了以下错误。
Exception in thread "main" java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(File.java:1717)
at java.io.File.createTempFile0(File.java:1738)
at java.io.File.createTem
当我尝试这个的时候,它起了作用:
B = FOREACH A {
X = STRSPLIT(agegroup,'-',0);
}
输出:
((20,30))
((20+))
((20,40))
and so on...
现在,我尝试了这样的FLATTEN:
B = FOREACH A {
X = FLATTEN(STRSPLIT(agegroup,'-',0));
}
我得到了以下错误:
Pig Stack Trace
---------------
ERROR 1200: <file PigScript.pi
下面的pig脚本给出了一个文件中各种字符的计数。它适用于除','以外的所有字符。
我的代码:
A = load 'a.txt';
B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word;
C = filter B by word matches '(.+)';
D = foreach C generate flatten(TOKENIZE(REPLACE(word,'','|'), '|')) as letter;
E = gr
通常情况下,如果我们在一行中存在任何分隔符,我们就会这样做。
load "pigtest.txt" using PigStorage(',') as (year:int,temp:float);
下面是单行数据的样本。
0029029070999991901010106004+64333+023450FM12+000599999V0202701N015919999999N0000001N9-00781+99999102001ADDGF108991999999999999999999
我需要提取年份1901(16th position to 4positions)
我在eclipse的本地模式下运行我的Pigscript。当我尝试将输出存储在JsonStorage中时。
Exception in thread "main" java.lang.RuntimeException: Cannot instantiate:org.apache.pig.builtin.JsonStorage
at org.apache.pig.impl.PigContext.instantiateFuncFromSpec(PigContext.java:473)
at org.apache.pig.impl.logicalLayer.parser
我想读一读猪脚本中的属性。其他一些作业会生成该属性的值,并将其写入hdfs。
我尝试使用下面的脚本,它起作用了。
%declare a com.company.Check();
x = LOAD '1' using PigStorage('^A') as (b:chararray);
y = FOREACH x GENERATE b, $a ;
但是当我在udf中传递一个参数时,这个pigscript就失败了。
%declare a com.comapny.Check($p);
x = LOAD '1' using PigStorage(
我有一个数据模式,其中有50+ cols。现在,我有了一个场景,需要将四个int列相加在一起。每四个人中的任何人都有可能是空的。
if i do null + 1 + null + 7 i get the result as null which is true as per given in the PIG
https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#Nulls
i.e. if either sub-expression is null, the resulting expression is null.
有谁能让我知道如
我已经创建了一个简单的pigscript,它加载10条记录并存储在一个表中。
当我使用oozie Shell操作调用这个pig(存储在HDFS中)文件时,我得到了错误,如下所示:
>>> Invoking Shell command line now >>
Exit code of the Shell command 5
<<< Invocation of Shell command completed <<<
<<< Invocation of Main class completed <<<
我正在尝试使用AvroStorage()方法存储到HDFS。代码如下所示:
store 'data' into 'path' using AvroStorage('schema', $SCHEMA)
模式是我在执行cat '/path/to/schema/schema.avsc'时得到的一个变量,现在我收到一个错误,说:
ERROR org.apache.pig.tools.grunt.Grunt - org.apache.pig.tools.pigscript.parser.TokenMgrError: Unmatched
在Pig中设置自定义TextInputFormat分隔符的正确语法是什么?我尝试过以下几个变体,但它将其视为字符串值,而不是传输返回线源。
set textinputformat.record.delimiter '\r\n';
Pig版本为0.12.0-cdh5.9.0,Hadoop版本为2.6.0-cdh5.9.0。
我有一个数据集看起来
gr col1 col2
A 2 'haha'
A 4 'haha'
A 3 'haha'
B 5 'hoho'
B 1 'hoho'
如您所见,在每个组gr中都有一个数值变量col1和一些字符串变量col2 ,它们在每个组中是相同的。
如何在猪中获得以下伪代码?
foreach group gt : generate the mean of col1 and get the first occurrence of
我试图在Pig中使用ASSERT操作符,但也面临着问题。
A = LOAD 'data' AS (a0:int,a1:int,a2:int);
DUMP A;
(1,2,3)
(4,2,1)
(8,3,4)
(4,3,3)
(7,2,5)
(8,4,3)
ASSERT A by a0 > 0 'a0 should be greater than 0';
以下是日志:
错误1000:解析过程中出错。在第3行,第1栏,遇到了“断言”,期望"cat“.
“清空”。
……org.apache.pig.tools.pigscript.parse
我想弄清楚他们在一个文件中的每一行有多少个字。我已经到了装货和劈开的地步:
raw = load file;
words = FOREACH raw GENERATE TOKENIZE(*);
给我买了一袋薄荷糖,每袋都有一个字。然后,我去数这些项目,我得到一个错误:
counts = FOREACH words GENERATE COUNT(*);
我收到一个错误:
org.apache.pig.backend.executionengine.ExecException: ERROR 2106: Error while computing count in COUNT
...
Caused
有没有办法向已经存在的表中添加额外的列?例如,为所有行添加额外的列user (为null ),并将列date设置为2015-02-01
serial:long, title:chararray, year:int,score:float
(49586,Winter Wonderland,2013,2.8)
(49587,Top Gear: Series 19: Africa Special,2013,3.1)
(49588,Fireplace For Your Home: Crackling Fireplace with Music,2010,7.3)
grunt>
serial:lo
我正在尝试在Pig中加载一个.mmdb文件,然后将它传递到python脚本中。但是,我得到了错误消息:“无效的标量投影: db:需要从关系中投影列才能作为标量使用”。我的代码是:
REGISTER 'py_pigscript.py' USING jython AS myudf;
log = LOAD 'test.txt' USING PigStorage(',') AS (x:int);
db = LOAD 'data.mmdb';
result = FOREACH log GENERATE myudf.function(x,db