Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Apache Pig处理多行、多行*.csv文件形式的多变量时间序列?_Csv_Hadoop_Apache Pig_Time Series - Fatal编程技术网

如何使用Apache Pig处理多行、多行*.csv文件形式的多变量时间序列?

如何使用Apache Pig处理多行、多行*.csv文件形式的多变量时间序列?,csv,hadoop,apache-pig,time-series,Csv,Hadoop,Apache Pig,Time Series,我需要用ApachePig处理多行、多行*.csv文件形式给出的多元时间序列。我正在尝试使用自定义UDF(EvalFunc)来解决我的问题。但是,我尝试过的所有加载程序(除了org.apache.pig.impl.io.ReadToEndLoader,我没有开始工作)都会加载csv文件中的数据并将其传递给UDF,并将文件的一行作为一条记录返回。然而,我需要的是一列(或完整文件的内容)能够处理完整的时间序列。处理一个值显然是无用的,因为我需要更长的值序列 csv文件中的数据如下所示(30列,第1列

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

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

2013年6月17日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个时间序列吗?
提前谢谢

你想要实现什么

如果要将所有文件中的所有行作为单个记录读取,则可以执行以下操作:

a = LOAD '...' USING PigStorage(';') as <schema> ;
b = GROUP a ALL;
a = LOAD '...' USING PigStorage(';','tagsource') as <schema> ;
b = GROUP a BY $0; --$0 is the filename
a=使用PigStorage(“;”)作为加载“…”;
b=a组ALL;
b将包含袋中的所有行

如果要将每个CSV文件作为单个记录读取,可以执行以下操作:

a = LOAD '...' USING PigStorage(';') as <schema> ;
b = GROUP a ALL;
a = LOAD '...' USING PigStorage(';','tagsource') as <schema> ;
b = GROUP a BY $0; --$0 is the filename
a=使用PigStorage(“;”,“tagsource”)作为加载“…”;
b=a组乘以0美元--$0是文件名

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

您使用tagsource的第二个建议似乎是个好主意。但是,我得到以下异常:线程“bla”java.lang.RuntimeException中的异常:无法使用参数“[;,tagsource]”实例化“PigStorage”。没有“tagsource”,它运行时不会出错。我必须使用ApachePig版本0.8.1-cdh3u5(rexported)。也许这个参数需要一个更新的版本(更新集群的另一个原因…)?!我想加载多个csv文件,并在UDF中处理每个文件的内容。知道我的UDF中的文件名将是完美的。我有来自不同位置的文件,这些文件是文件名的一部分…是的,好像Pig 0.8.1没有使用这个参数-。最新的生产版本是0.12-您一定要升级!