pig latin - 从单行输入创建多行输出

Posted

技术标签:

【中文标题】pig latin - 从单行输入创建多行输出【英文标题】:pig latin - create multiple row output from single line input 【发布时间】:2014-04-08 03:40:03 【问题描述】:

我输入了如下数据:

Row1|2014-04-04 18:46:18|37.52|-84.34|30870|580.372 毫秒,759.065 毫秒, 695.879 毫秒

Row2|2014-04-04 18:47:18|37.68|-84.34|31127|619.341 毫秒,725.121 毫秒, 696.790 毫秒

我怎样才能做成多行如下:

Row1|2014-04-04 18:46:18|37.52|-84.34|30870|580.372 毫秒

Row1|2014-04-04 18:46:18|37.52|-84.34|30870|759.065 毫秒

Row1|2014-04-04 18:46:18|37.52|-84.34|30870|695.879 毫秒

Row2|2014-04-04 18:47:18|37.68|-84.34|31127|619.341 毫秒

Row2|2014-04-04 18:47:18|37.68|-84.34|31127|725.121 毫秒

Row2|2014-04-04 18:47:18|37.68|-84.34|31127|696.790 毫秒

提前致谢

【问题讨论】:

【参考方案1】:

您可以使用FLATTEN。例如,

a = load 'test.txt' using PigStorage('|') as (c1: chararray, c2: chararray, c3: double, c4: double, c5: long, c6: chararray);
b = foreach a generate c1, c2, c3, c4, c5, STRSPLIT(c6, ', ', 3) as c6;
c = foreach b generate c1, c2, c3, c4, c5, FLATTEN(c6) as (c6: chararray, c7: chararray, c8: chararray);
dump c;

【讨论】:

以上是关于pig latin - 从单行输入创建多行输出的主要内容,如果未能解决你的问题,请参考以下文章

添加文件夹名称以输出 Pig Latin

我可以在 Apache Pig Latin 中将命令拆分为多行吗?

将单行转换为多行

JavaScript 注释以及输入输出语句

Store 命令中的 Pig Latin 参数

Sass到CSS输出为单行[重复]