使用Pig将数据存储到具有特定格式的文件中

问题描述

最近我一直在做一个项目,我需要以某种特定格式输出最终数据。尽管我的实际数据集非常复杂。我将通过使用伪数据来说明我的问题。

如果我有以下数据-

>>> str1 = "hit hop hat"
>>> str2 = "hot has hit hop"

>>> set_of_words1=set( str1.split() )
>>> set_of_words2=set( str2.split() )

>>> set_of_words1 & set_of_words2
{'hop','hit'}

然后我要使用Pig以以下格式输出此数据-

1
2
3
4
5
5
4
2
1

注意->对于4到8,我不包括4,8本身。

我尝试过以下代码,但是如何在猪的最终输出添加Between 4 and 8 2 Between 1 and 5 5

Between 4 and 8

从现在开始,我不知道如何将data3,data4以我上面指定的格式存储在单个文件中。

解决方法

创建两个过滤的数据集,全部计数并将结果合并为单个输出。在编写之前,在各个计数之前添加所需的文字文本。

data = LOAD 'f.txt' AS num:int;

data3 = FILTER data BY num > 4 AND num < 8;
data4 = FILTER data BY num > 1 AND num < 5;

data3_grp = GROUP data3 ALL;
data3_count = FOREACH data3_grp GENERATE 'Between 4 and 8',COUNT(data3);

data4_grp = GROUP data4 ALL;
data4_count = FOREACH data4_grp GENERATE 'Between 1 and 5',COUNT(data4);

data5 = UNION data3_count,data4_count

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...