草庐IT

pig4cloud

全部标签

hadoop - pig CPU 密集型任务 - 小数据文件 - 许多映射器?

我正在寻找有关如何通过我的Pig作业提高性能的任何提示。输入是单个文件(MB),但对于文件中的每一行,都会执行一个CPU密集型任务。因此,理想的做法是将此文件拆分到我的AmazonEMR集群中的许多映射器(和机器)。但是我找不到一种方法来做到这一点,因为Hadoop自然只会以64(或者是128?)MB间隔进行拆分,所以我只有1个映射器!我看过NLineInputFormat(http://www.olenick.com/blog/hadoop-for-small-data/),但这是针对旧API的,也不确定它如何与Pig一起使用。为了让事情更复杂,我正在使用CSVExcelStorag

hadoop - apache pig 中的 "substr"语句

我在apachehadoop中有以下用户数据结构21796346,83637,2990666,1,2,false,0,021827841,15748,8754621,1,7,true,0,1第一个字段的前4位数字代表用户类型。第二个字段代表部门类型。我想查询每个部门的用户类型数。SQL语句如下selectdept_id,substr(User_Id,1,4)asuser_type,count(*)asnumber_of_usersfromusersgroupbydept_id,substr(User_Id,1,4)我不知道如何在pig中定义substr函数。

hadoop - pig : Failed to parse: mismatched input 'id' expecting set null

我正在使用Pig0.12.1并具有以下Pig代码:C=LOAD'$file'USINGmyCustomLoader();D=FOREACHCGENERATEkey#id;我正在使用自定义加载程序加载文件。然后我想生成存储在key中的所有ID,一个映射。为什么我会收到以下错误消息:14/06/2716:56:21ERRORpig.PigServer:exceptionduringparsing:Errorduringparsing.mismatchedinput'id'expectingsetnullFailedtoparse:mismatchedinput'id'expectingse

hadoop - 在 hive 或 Pig 中创建序列号

我面临数据转换问题:我这里的表格有3列:客户端、事件、时间戳。我基本上想根据时间戳为给定客户端的所有事件分配一个序列号,这基本上是我在下面添加的“序列”列。ClientEventTimeStampSequenceC1Ph2014-01-3012:15:231C1Me2014-01-3115:11:342C1Me2014-01-3117:16:053C2Me2014-02-0109:22:521C2Ph2014-02-0117:22:522我不知道如何在hive或Pig中创建这个序列号。你有什么线索吗?提前致谢!纪尧姆 最佳答案 将所

hadoop - 如何在 Pig Latin 中实现 Levenshtein 算法

我有两个数据集。A{(1,apple),(2,orange),(3,banana)}和B={(1,oracle),(2,ape),(3,naana),(4,orlando),(5,应用程序)(6,横幅)}我有一个udf,它在两个字符串之间给出Levenshtein分数。但是如何计算A中的每个字段与B中的所有字段以获得B中最匹配的字符串。例如,A中“apple”的Levenshtein得分对于app的得分高于B中的ape甲骨文在A中的Levenshtein得分比奥兰多在B中得分更高A中“banana”的Levenshtein得分更多的是naana而不是B中的banner。

hadoop - 为什么 Amazon EMR 上的机器越多,我的 Pig UDF 就不能更快?

我是Hadoop和大数据方面的新手。我们每天都有数百个日志文件。每个文件大约78Mb。因此,我们认为我们可以从Hadoop作业中获益,我们可以编写PigUDF并提交给AmazonEMR。我们做了一个非常简单的PigUDFpublicclassProcessLogextendsEvalFunc{//ExtractIPAddressfromlogfilelinebylineandconvertthattoJSONformat.}它在本地与Pig和hadoop一起工作。因此,我们提交给AmazonEMR,并使用5倍超大实例运行。大约花了40分钟才完成。因此,我们认为如果我们将实例加倍(10倍

hadoop - PIG 脚本 IF ELSE 语句

pig脚本是否支持if-else语句这是我想做的:if($NAME=='乔伊')做一点事别的做点什么这可行吗?谢谢 最佳答案 它被称为“Bincond”运算符语句如:(Price>75?'High':'Low')也是有效的对于处理空记录:((NameisnullorIsEmpty(Name))?{('unknown')}:Name)在foreach语句中将它们与其他字段一起使用别名,即:A=load'x/y/Price.csv'as(Name,Product,Price);B=foreachAgenerateName,Product

hadoop - 使用 Apache Pig Latin 对数据进行条件求和

我正在尝试使用ApachePigLatin进行一些日志处理,我想知道是否有更简单的方法来执行此操作:filtered_logs=FOREACHlogsGENERATEnumDay,reqSize,optimizedSize,origSize,compressionPct,cacheStatus;grouped_logs=GROUPfiltered_logsBYnumDay;results=FOREACHgrouped_logsGENERATEgroup,(SUM(filtered_logs.reqSize)+SUM(filtered_logs.optimizedSize))/10485

hadoop - PIG 存储函数 : storing only certain fields is possible?

我有一个用例,我只需要将某些字段存储到HDFS。我知道我可以做一些foreach等等来保留感兴趣的领域,但我想知道这在Store函数中是否可行。 最佳答案 这可以使用您自定义的Store函数:http://ofps.oreilly.com/titles/9781449302641/load_and_store_funcs.html但一般来说,使用GENERATE并将所需字段存储在一些其他元组中要容易得多,这些元组将仅在STORE函数中使用 关于hadoop-PIG存储函数:storing

java - 从 Java 应用程序中执行 Pig

是否可以在Java应用程序中运行ApachePig作业,而无需fork外部进程?Pig和Hadoop似乎都是用Java编写的,但并不真正提供JavaAPI。与其依赖shell脚本,我更愿意在JavaSpring应用程序中使用这些工具。 最佳答案 好像有JavaAPIforPig.根据这个API,有一个PigRunnerclass.有了它,您可以通过创建一个专用的Springbean轻松地将它添加到您的Spring应用程序中。 关于java-从Java应用程序中执行Pig,我们在Stack