草庐IT

java - 安装 pig 时出现“未设置 JAVA_HOME”错误。怎么办?

我遵循了pig.apache.org上的所有步骤,但无法通过设置java变量来消除此错误。我在安装javajdk时设置了变量,但它再次询问变量。 最佳答案 您需要了解环境变量在Linux(或Windows)中的工作原理。您可能只是在用于安装的shell中临时设置了JAVA_HOME。要永久设置JAVA_HOME(在Linux/UNIX上),您需要在每次创建新shell时运行的shell“rc”文件中设置它。(这取决于您使用的是哪个shell,但是man可以告诉您有关...) 关于java

hadoop - 无法解析 Apache Pig 中的 Over()

在Pig中使用Over()时出现以下错误:Failedtogeneratelogicalplan.Nestedexception:org.apache.pig.backend.executionengine.ExecException:ERROR1070:CouldnotresolveOverusingimports:[,java.lang.,org.apache.pig.builtin.,org.apache.pig.impl.builtin.]错误发生在执行C的右大括号时:A=load'data/watch*.txt'as(id,ts,watch);B=GROUPABYid;C=F

hadoop - 如何处理 pig 中的重复代码(模块化)

我有一个pig代码可以做到这一点,连接到db1,执行,连接到db2并执行相同的操作联合输出产生最终输出基本上如何处理脚本中多个位置需要相同代码的情况 最佳答案 您可以为重复操作定义宏,并在您的pig脚本中使用这些宏,如下所示:DEFINEmacroPerformUnion()RETURNSunion_data{union_data=--doyourstuff}将上面的内容保存在一个名为ma​​croPerformUnion.pig的文件中现在要在脚本中使用宏,您需要导入pig文件IMPORT'macroPerformUnion.pi

hadoop - 在 PIG 中是否可以通过定义列字段值来创建列字段

假设我有以下结构化数据文件1298712012061228765236542123049824234209374120397201207304219853120394820349802349802312037120120923293856123509243957984568923451234812012101223423498230482034893204820398在上面的文件中,前6位数字是来自(1-6)的UserId,接下来的8位数字是来自(7-12)列的year_date接下来的6列是来自(13-18)的Count字段,然后类似地我有来自(19-30)和(31-42)中的Cha

hadoop - gzip 数据的压缩/解压缩在 Hadoop/PIG 中是否透明?

我在某处读到Hadoop内置了对压缩和解压缩的支持,但我猜这是关于映射器输出(通过设置一些属性)?我想知道是否有任何特定的PIG加载/存储函数可用于读取压缩数据或输出压缩数据? 最佳答案 PigStorage通过检查文件名来处理压缩输入:*.bz2/*.bz-org.apache.pig.bzip2r.Bzip2TextInputFormat其他一切都使用org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextInputFormat--这扩展了o.a.h

hadoop - Apache pig : Easier way to filter by a bunch of values from the same field

假设我想根据同一字段中的值选择数据子集。现在我必须做这样的事情TestLocationsResults=FILTERSalesDataby(StoreId=='17'orStoreId=='85'orStoreId=='12'orStoreId=='45'orStoreId=='26'orStoreId=='75'orStoreId=='13')在SQL中,我们可以简单地这样做:SELECT*FROMSalesDatawhereStoreIDIN(17,12,85,45,26,75,13)Pig中是否有我缺少的类似快捷方式? 最佳答案

hadoop - Pig - 如何操作和比较日期?

我有一个包含如下条目的文件:1,1,072012,072013,11,blablabla前两个字段是id。第三个是开始日期(月年),第四个是结束日期。第五个字段是这两个日期之间的月数。最后一个字段包含文本。这是我加载此数据的pig代码:f=LOAD'file.txt'USINGPigStorage(',')AS(id1:int,id2:int,date1:chararray,date2:chararray,duration:int,text:chararray);我想过滤我的文件,以便只保留date2从今天起不到三年的条目。在Pig中有可能吗?谢谢。 最佳答

hadoop - 如何优化 pig 中的大表读取和外部连接

我要加入一张大table和另外3张table,A=通过(f1,f2)RIGHTOUTER加入小表,通过(f1,f2)加入massiveTable;B=通过(f3)RIGHTOUTER加入AnotherSmall,A通过(f3);C=通过(f4)加入AnotherSmall,B通过(f4);小表可能放不下内存,但是这会迫使十亿对象读取三次并且耗时,我想知道是否有任何方法可以避免重读并提高流程效率?提前致谢。 最佳答案 如果您将HBase中的大表设计为具有三个列族,即从f3和拆分f1和f2>f4,你应该能够避免不必要的读取。此外,如果您

java - 尝试为 pig 编写一个自定义加载程序来处理跨越多行的记录,如何确保拆分不会发生在记录中间?

我正在为pig编写自定义加载程序。它应该读取可能跨越多行的分隔记录。一切正常,除了有时在记录中间发生split并弄乱一切。我知道RecordReader和InputFormat与文件拆分的位置有关,但无法弄清楚如何让它在我的情况下工作。在我看来,CSVExcelStorage应该有同样的问题,但我找不到任何代码来处理这个问题。 最佳答案 CSVExcelStorage的工作假设是没有任何嵌入的换行符,因此没有处理它们的代码。关于RecordReader是这里的罪魁祸首,你是对的。您需要编写一个新的记录阅读器类来理解您的数据,从而理解

hadoop - 关于 Pig 作业 Jar 文件

我正在使用嵌入式Pig来实现图形算法。它在本地模式下工作正常。但是在一个完全分布式的Hadoop集群中,总是有如下错误信息:(请看最后几行)2012-11-2322:00:00,651[main]INFOorg.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler-creatingjarfileJob4116346741117365374.jar2012-11-2322:00:09,418[main]INFOorg.apache.pig.backend.hadoop.executionen