草庐IT

hadoop - 如何避免 PIG 中的符号零

我有两个双变量,比如A和B。A列将始终具有正值,B列可以同时具有正值和负值。当我试图划分以上两个变量时:A/BB=FOREACHA生成0.0/-5.4结果(-0.0)我期望值​​为0.0,但我得到的是-0.0。你能建议我在PIG中缓解这个问题的方法吗? 最佳答案 最好选择双子运算符(?:)。A=LOAD'a.csv'usingPigStorage(',')AS(a:double,b:double);B=FOREACHAGENERATE(a==0?a:((b==0)?NULL:a/b))ASc;DUMPB;输入:a.csv0.0,-5

sql - 如何使用标准查询或使用 UDF 标记一行并将其特定值存储在 Hive 中?

我需要在Hive中编写查询或定义需要执行以下操作的函数:数据集:Student||Time||ComuputerPool-------------------------------------A||9:15AM||Pool1.Machine2-------------------------------------A||9:45AM||Pool1.Machine7-------------------------------------A||10:15AM||Pool1.Machine9-------------------------------------A||11:00AM||

hadoop - 如何创建一个在 pig 中嵌套包的输出模式

我正在试用PigUDF,并且一直在阅读它。虽然在线内容很有帮助,但我仍然不确定我是否了解如何创建具有嵌套包的复杂输出模式。求助,需求如下。比方说,我正在分析电子商务订单数据。一个订单中可以订购多个产品。我将产品级别数据分组到订单级别。这是我的UDF的输入。因此,包含每个订单中产品信息的订单级别的每个分组数据都是我的输入。输入模式:(grouped_at_order,{(input_column_values_at_product1_level),(input_column_values_at_product2_level)})我会在UDF中计算订单级别和产品级别的指标。例如:sum(p

hadoop - 根据条件加入并按时间范围过滤并限制为 Pig 中的第一行

我有关系A、关系B。对于A中的每一行,在关系B中可能有多个映射。说:A=(id1,type,location,gender,startDateTime)B=(id2,type,location,gender,registerStartDateTime,registerEndDateTime,value)我需要在(类型、位置和性别)和时间(startDateTime>registerStartDateTime)和(startDateTime此连接可能会从B返回具有不同值的多行。我只想选择第一个返回的行并最终输出。output=JoinAby(type,location,gender),B

hadoop - 使用 Pig/Python 检查 HDFS avro 格式的字段是否存在

我在HDFS中有一组以Avro格式存储的文件。其中一些有一个名为id:int的列,如下所示{"type":"record","name":"metric","fields":[{"name":"timestamp","type":"long"},{"name":"id","type":"long"},{"name":"metric","type":"string"},{"name":"value","type":"double"}]}我需要标记具有“id”列的文件(输出文件名)。有没有办法在Python中使用Pig/PythonUDF/Pig流或嵌入式Pig来完成它。我已经将Pytho

java - 如何在 Pig Hadoop 中以简单日期格式 ex "yyyy-MM-dd hh-MM-ss"转换长毫秒

如何将long毫秒转换为simpledate格式ex:yyyy-MM-ddhh-MM-ss在PigHadoop中exampleinput=1409051466000output="yyyy-MM-ddhh-MM-ss"在Pig脚本中。 最佳答案 谢谢krishanthy-mohanachandran。但是我在pig中有很好的脚本。我正在试用并完成。以简单的日期格式转换毫秒yyyy-MM-ddhh-MM-sspig中的脚本:curtime=milisecond-long(1409051466000)为了格式化,我可以将它转换为日期,然

hadoop - 如何在 PIG 中使用 FILTER 获取 for 循环内的匹配值?

将此视为我的输入,Input(File1):12345;1134567;12..Input(File2):11;(1,2,3,4,5,6,7,8,9)12;(9,8,7,6,5,4,3,2,1)..我想得到如下输出:Output:(1,2,3,4,5,6,7,8,9)(9,8,7,6,5,4,3,2,1)这是我尝试使用FILTER的示例代码,我遇到了一些错误。请建议我一些其他选项。data1=load'/File1'usingPigStorage(';')as(id,number);data2=load'/File2'usingPigStorage(';')as(numberInfo,

bash - Pig 0.12.0 不会使用反引号执行时区更改的 shell 命令

我在亚马逊EMR上将Hue用于PIG脚本。我想进行shell调用以将特定时区中的日期获取到一个变量中,我将使用该变量来定义用于将输出写入的输出文件夹路径。最终我想使用ifelsefi循环从一周中获取特定日期,因此时区将在命令的不同位置提及。示例脚本ts=LOAD's3://testbucket1/input/testdata-00000.gz'USINGPigStorage('\t');STOREtsINTO's3://testbucket1/$OUTPUT_FOLDER'USINGPigStorage('\t');Hue中Pig参数定义:这有效:OUTPUTFOLDER=`/bin/

hadoop - 如何将 tar.gz 中的多个文件加载到 Pig 中

场景:供应商将提供tar.gz格式的原始提要,其中包含制表符分隔格式的多个文件文件详细信息:a)OneHit等级数据b)多个查找文件c)(a)的一个头文件提要(tar.gz)将被摄取并登陆到BDP原始操作中。查询:希望将这些数据从操作原始区域加载到Pig中以进行数据质量检查过程。如何实现?文件应该提取到hadoop中供我们使用还是可用的替代方案?请指教。谢谢!注意:任何示例脚本都会更有帮助 最佳答案 引用:http://pig.apache.org/docs/r0.9.1/func.html#load-store-functions

hadoop - 使用 PIG 对多列求和

我有多个包含相同列的文件,我正在尝试使用SUM聚合两列中的值。列结构如下IDfirst_countsecond_countnamedesc11010AA_Desc12545AA_Desc13025AA_Desc22020BB_Desc24010BB_Desc如何计算first_count和second_count的总和?IDfirst_countsecond_countnamedesc16580AA_Desc26030BB_Desc下面是我写的脚本,但是当我执行它时出现错误“无法推断SUM的匹配函数,因为它们中的多个都不适合。请使用显式转换。A=LOAD'/output/*/part*