我试图在Apache Pig中追加一个数据集到另一个数据集。有几个例子,但我认为不同于我的问题。Apache PIG:将一个数据集追加到另一个
这是我的猪的脚本:
LINE1 =负载 'LINE1 /点' 利用表();
line20 =使用Table()加载'line20/points';
DESCRIBE line1;
DUMP line1;
DESCRIBE line20;
DUMP line20;
X = UNION line1,line20;
DESCRIBE X;
DUMP X;
我得到这个:
线路1:{键:字节组,Y:(名称:chararray,值:长),X(名称:chararray,值:长),列:{ (名称:chararray,值:字节阵列)}}
(ab48a8567d58cfea52905db0e94d88d3,(Y,3),(X,3))
(ab48a8567d58cfea52905db0e94d88d3,(Y,1),(X,1))
(ab48a8567d58cfea52905db0e94d88 d3,(y,2),(x,2))
line20:{key:bytearray,y :(名称:chararray,value:long),x:(name:chararray,value:long) :{(名称:chararray,值:字节阵列)}}
(203146881b7ef0d26902ea440e734b79,(Y,20),(X,20))
(203146881b7ef0d26902ea440e734b79,(Y,21),(X,21) )
(203146881b7ef0d26902ea440e734b79,(Y,22),(X,22))
X:{键:字节组,Y:(名称:chararray,值:长)中,x:(名称:chararray,价值:长),柱NS:{(名称:chararray,值:字节阵列)}}
(203146881b7ef0d26902ea440e734b79,(Y,21),(X,21))
(203146881b7ef0d26902ea440e734b79,(Y,22),(X,22 ))
(203146881b7ef0d26902ea440e734b79,(Y,20),(X,20))
(203146881b7ef0d26902ea440e734b79,(Y,20),(X,20))
(203146881b7ef0d26902ea440e734b79,(Y, 21),(x,21))
(203146881b7ef0d26902ea440e734b79,(Y,22),(X,22))
结果是 'line20' 数据集的只是一个双重拷贝。为什么?
我想要'line1'的值,然后'line20'的值。
顺便说一句:...使用表(); - 这只是我实现的CassandraStorage,我自动为列提供类型。
感谢您的帮助!
解
Configuration
是共享的。我忘了它,并且我正在使用Table()
实例相同的ID来初始化它们。
如果您可以将您的示例数据减少到几行/列 - 这将有所帮助。 – Ruslan
完成。我希望它有帮助。 – ahypki
谢谢。这看起来很奇怪。我会尝试将文本文件作为输入,并使用普通的PigStorage加载它们。只是为了一个健全的检查。如果这有帮助,那么我会得出结论,问题在Table()中。你确定两个调用不会相互重叠吗? – Ruslan