标签: apache-pig

如何使用Cassandra的Map Reduce或者没有Pig?

有人可以解释MapReduce如何与Cassandra一起使用.6?我已经阅读了单词计数示例,但我并不完全了解Cassandra结束与"客户端"结束时发生的事情.

https://svn.apache.org/repos/asf/cassandra/trunk/contrib/word_count/

例如,假设我使用的是Python和Pycassa,我将如何加载新的map reduce函数,然后调用它?我的map reduce函数必须是安装在cassandra服务器上的java吗?如果是这样,我如何从Pycassa调用它?

还有提到猪使这一切变得更容易,但我是一个完整的Hadoop菜鸟,所以这并没有真正的帮助.

你的回答可以使用Thrift或者其他什么,我刚才提到Pycassa来表示客户端.我只是想了解Cassandra集群中运行的内容与发出请求的实际服务器之间的区别.

mapreduce apache-pig cassandra

15
推荐指数
1
解决办法
8910
查看次数

计算中位数减少

有人可以举例说明地图中的中位数/分位数的计算吗?

我对Datafu中位数的理解是'n'映射器对数据进行排序并将数据发送到"1"reducer,它负责对n个映射器中的所有数据进行排序并找到中位数(中间值)我的理解是否正确?

如果是这样,这种方法是否适用于大量数据,因为我可以清楚地看到单个减速器正在努力完成最终任务.谢谢

statistics hadoop mapreduce apache-pig median

15
推荐指数
2
解决办法
1万
查看次数

使用Piglatin加载文本文件时跳过标题

我有一个文本文件,它的第一行包含标题.现在我想对数据进行一些操作,但是在使用PigStorage加载文件时它也需要HEADER.我只是想跳过HEADER.是否可以(直接或通过UDF)这样做?

这是我用来加载数据的命令:

input_file = load '/home/hadoop/smdb_tracedata.csv'
USING PigStorage(',')
as (trans:chararray, carrier:chararray,aainday:chararray);
Run Code Online (Sandbox Code Playgroud)

hadoop apache-pig

15
推荐指数
4
解决办法
2万
查看次数

Eclipse最好的Pig插件是什么?

我即将开始玩PIG-latin,我希望能在Eclipse中获得一些文本突出显示等等.快速进行谷歌搜索,我看到了几个Eclipse插件.它们还在发展中吗?哪个最好?

eclipse eclipse-plugin editor apache-pig

14
推荐指数
2
解决办法
1万
查看次数

存储输出到单个CSV?

目前,当我存储到HDFS时,它会创建许多部分文件.

有没有办法存储到单个CSV文件?

apache-pig

14
推荐指数
2
解决办法
1万
查看次数

在pig脚本中定义元组数据

我正在调试一个猪脚本.我想直接在Pig文件中定义一个元组(而不是基本的"加载"函数).

有办法吗?

我正在寻找类似的东西:

A= ('name#bob'','age#29';'name#paul','age#12')
Run Code Online (Sandbox Code Playgroud)

转储将返回:

('bob',29)
('paul',12)
Run Code Online (Sandbox Code Playgroud)

hadoop apache-pig

14
推荐指数
1
解决办法
2268
查看次数

查找Pig中另一个字符串中是否存在字符串

我想查找一个字符串是否包含Pig中的另一个字符串.我发现有一个内置index函数,但它只搜索字符而不是字符串.

还有其他选择吗?

string apache-pig

14
推荐指数
1
解决办法
1万
查看次数

如何将当前输入文件名合并到我的Pig Latin脚本中?

我正在处理来自一组文件的数据,这些文件包含日期戳作为文件名的一部分.文件中的数据不包含日期戳.我想处理文件名并将其添加到脚本中的一个数据结构中.有没有办法在Pig Latin(PigStorage的扩展可能?)中做到这一点,或者我是否需要预先使用Perl等预处理所有文件?

我想象如下:

-- Load two fields from file, then generate a third from the filename
rawdata = LOAD '/directory/of/files/' USING PigStorage AS (field1:chararray, field2:int, field3:filename);

-- Reformat the filename into a datestamp
annotated = FOREACH rawdata GENERATE
  REGEX_EXTRACT(field3,'*-(20\d{6})-*',1) AS datestamp,
  field1, field2;
Run Code Online (Sandbox Code Playgroud)

请注意LOAD语句中的特殊"filename"数据类型.似乎它必须在那里发生,因为一旦数据被加载,回到源文件名已经太晚了.

apache-pig

13
推荐指数
2
解决办法
1万
查看次数

如何在列的子集上执行Pig Latin中的DISTINCT?

我想对列的子集执行DISTINCT操作.该文件说,这是可能的一个嵌套的foreach:

您不能在字段子集上使用DISTINCT; 要执行此操作,请使用FOREACH和嵌套块首先选择字段,然后应用DISTINCT(请参阅示例:嵌套块).

在所有列上执行DISTINCT操作很简单:

A = LOAD 'data' AS (a1,a2,a3,a4);
A_unique = DISTINCT A;
Run Code Online (Sandbox Code Playgroud)

让我们说我有兴趣在a1,a2和a3中执行不同的操作.任何人都可以提供一个示例,说明如何使用文档中建议的嵌套foreach执行此操作吗?

以下是输入和预期输出的示例:

A = LOAD 'data' AS(a1,a2,a3,a4);
DUMP A;

(1 2 3 4)
(1 2 3 4)
(1 2 3 5)
(1 2 4 4)

-- insert DISTINCT operation on a1,a2,a3 here:
-- ...

DUMP A_unique;

(1 2 3 4)
(1 2 4 4)
Run Code Online (Sandbox Code Playgroud)

apache-pig

13
推荐指数
1
解决办法
3万
查看次数

用猪过滤空值

它看起来像一个愚蠢的问题,但我找不到从我的行中过滤空值的方法.这是我转储对象geoinfo时的结果:

DUMP地理信息;
([经度#70.95853,纬度#30.9773])
([经度#9.37944507,纬度#38.91780853])
(null)
(null)
(null)
([经度#-92.64416,纬度#16.73326])
(null)
(null)
([经度#-9.15199849,纬度#38.71179122])
([经度#9.15210796,纬度#38.71195131])

这是描述

DESCRIBE geoinfo;
geoinfo:{geoLocation:bytearray}

我想要做的是过滤这样的空值:

geoinfo_no_nulls = FILTER geoinfo BY geoLocation不为null;

但结果仍然相同.没有过滤.

我也试过这样的事

geoinfo_no_nulls = FILTER geoinfo BY geoLocation!='null';

我收到了一个错误

org.apache.pig.backend.executionengine.ExecException:错误1071:无法将地图转换为字符串

我究竟做错了什么?

细节,在ubuntu上运行,hadoop-1.0.3与pig 0.9.3

pig -version Apache Pig版本0.9.3-SNAPSHOT(rexported)编译于2012年10月24日,19:04:03

java版"1.6.0_24"OpenJDK运行时环境(IcedTea6 1.11.4)(6b24-1.11.4-1ubuntu0.12.04.1)OpenJDK 64位服务器VM(内置20.0-b12,混合模式)

hadoop apache-pig

12
推荐指数
1
解决办法
3万
查看次数