0

我需要使用 Apache Pig 处理以多行、多行 *.csv 文件形式给出的多元时间序列。我正在尝试使用自定义 UDF (EvalFunc) 来解决我的问题。但是,我尝试的所有加载器(除了我无法工作的 org.apache.pig.impl.io.ReadToEndLoader 之外)在我的 csv 文件中加载数据并将其传递给 UDF将文件的一行作为一条记录返回. 但是,我需要的是能够处理完整时间序列的一列(或完整文件的内容)。处理一个值显然是没用的,因为我需要更长的值序列......

csv 文件中的数据如下所示(30 列,第一列是日期时间,所有其他列都是双精度值,这里是 3 个示例行):

17.06.2013 00:00:00;427;-13.793273;2.885583;-0.074701;209.790688;233.118828;1.411723;329.099170;331.554919;0.077026;0.485670;0.691253;2.847106;297.912382;50.000000;0.000000;0.012599;1.161726;0.023110;0.952259 ;0.024673;2.304819;0.027350;0.671688;0.025068;0.091313;0.026113;0.271128;0.032320;0 17.06.2013 00:00:01;430;-13.879651;3.137179;-0.067678;209.796500;233.141233;1.411920;329.176863;330.910693;0.071084 ;0.365037;0.564816;2.837506;293.418550;50.000000;0.000000;0.014108;1.159334;0.020250;0.954318;0.022934;2.294808;0.028274;0.668540;0.020850;0.093157;0.027120;0.265855;0.033370;0 17.06.2013 00:00:02;451 ;-15.080651;3.397742;-0.078467;209.781511;233.117081;1.410744;328.868437;330.494671;0.076037;0.358719;0.544694;2.841955;288.345883;50.000000;0.000000;0.017203;1.158976;0.022345;0.959076;0.018688;2.298611;0.027253;0.665095;0.025332 ;0.099996;0.023892;0.271983;0.024882;0

有谁知道我如何将其处理为 29 个时间序列?提前致谢!

4

1 回答 1

0

你想达到什么目标?

如果您想将所有文件中的所有行作为一条记录读取,这可以工作:

a = LOAD '...' USING PigStorage(';') as <schema> ;
b = GROUP a ALL;

b 将包含一个包中的所有行。

如果您想将每个 CSV 文件作为单个记录读取,这可以工作:

a = LOAD '...' USING PigStorage(';','tagsource') as <schema> ;
b = GROUP a BY $0; --$0 is the filename

b 将包含一个包中每个文件的所有行。

于 2013-11-12T08:24:48.617 回答