有人可以解释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集群中运行的内容与发出请求的实际服务器之间的区别.
有人可以举例说明地图中的中位数/分位数的计算吗?
我对Datafu中位数的理解是'n'映射器对数据进行排序并将数据发送到"1"reducer,它负责对n个映射器中的所有数据进行排序并找到中位数(中间值)我的理解是否正确?
如果是这样,这种方法是否适用于大量数据,因为我可以清楚地看到单个减速器正在努力完成最终任务.谢谢
我有一个文本文件,它的第一行包含标题.现在我想对数据进行一些操作,但是在使用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) 我即将开始玩PIG-latin,我希望能在Eclipse中获得一些文本突出显示等等.快速进行谷歌搜索,我看到了几个Eclipse插件.它们还在发展中吗?哪个最好?
我正在调试一个猪脚本.我想直接在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) 我想查找一个字符串是否包含Pig中的另一个字符串.我发现有一个内置index函数,但它只搜索字符而不是字符串.
还有其他选择吗?
我正在处理来自一组文件的数据,这些文件包含日期戳作为文件名的一部分.文件中的数据不包含日期戳.我想处理文件名并将其添加到脚本中的一个数据结构中.有没有办法在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"数据类型.似乎它必须在那里发生,因为一旦数据被加载,回到源文件名已经太晚了.
我想对列的子集执行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) 它看起来像一个愚蠢的问题,但我找不到从我的行中过滤空值的方法.这是我转储对象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,混合模式)
apache-pig ×10
hadoop ×4
mapreduce ×2
cassandra ×1
eclipse ×1
editor ×1
median ×1
statistics ×1
string ×1