`
qindongliang1922
  • 浏览: 2184407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117544
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125932
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59928
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71305
社区版块
存档分类
最新评论

Pig使用问题总结

    博客分类:
  • Pig
阅读更多

1,如果是a::tags#'pic'作为参数,传递给另一个函数方法,需要转义多次,

二次调用函数,就是这个方法里,又调用了其他方方法,参数也是层层传递,需要转义两次,尤其是map里的函数,
C1 = two_use_cart_filter_by_clkloc_distinct_vid_and_ic(C,0,2,'vid','cvid','tags#\\\'pic\\\'','cpic') ;

一次调用函数,只需转一次即可
cx = get_distinct_data_by_field(cx,B::vid,'bvid','B::tags#\'pic\'','bpic') ;

2,在pig函数中,如果传入的变量join后有别名的标量,不要使用A:tags#'et'语法写,直接使用tags#'et'引用


3,在function脚本中,
注册变量,必须使用单引号引起来 ,如下
REGISTER '/home/lib/dhpig.jar';
REGISTER '/home/lib/event-log.jar';
在非函数脚本中,则不需要

4, 在a.pig脚本中,如果引用了一个函数脚本function.pig,则注意a脚本的参数名字,不能和function.pig脚本中函数名字一样

5,单引号里嵌套单引号,需要转义使用

6,在a.pig中,引用了一个b.pig 如果b.pig 里面 定义了一个函数,然后别名x,
在a.pig里面使用 x2 = getx()接收,此时需要注意,x2 不能够和b.pig里面的函数里面加载数据的schema的别名一样 ,如果getx里面
有这么一段代码:
bb = load  'xx' as (x2:chararray)
 

7, a和b通过join后的得到的一个结果集r,如果传给下一个函数使用时,需要采用r::a::xx引用
如果有扩展字段,可以使r::a::map#'field'引用
 
 
8, 在使用转换一些类型时候,如果默认不设置任何schema,那么它将会是bytearray类型,如果想进行一些join操作,或者union,cross操作时,
一定要确保两边的join键的字符类型一致
ho = join $a by bvik left outer , $b by okey; ,如果bvik和okey的字符类型不一致,那么将会出现如下异常:
                        int errCode = 1075;
                        String msg = "Received a bytearray from the UDF. Cannot determine how to convert the bytearray to string.";
所以在,进行join前,一定确保类型一致,如下面的pig语句:$11和$3是要明确声明所属类型的
mz = foreach mf generate CONCAT((chararray)$11,(chararray)$3) as vidic , $4 as gno:chararray ;
mp = group mz by vidic;
$ord = foreach mp generate  group  as okey , BagToString($1.$1,'#') as rfxnos  ;



分享到:
评论

相关推荐

    大数据之pig 命令

    此外,使用Pig可以避免一些常见的问题,如数据倾斜问题。 - **缺点**:虽然Pig简化了开发流程,但在某些特定情况下,MapReduce可能会提供更好的性能优化和控制能力。 #### 三、Pig的应用场景 - **数据清洗**:Pig...

    pig java 编程jar包

    总结起来,`pig.jar`和`pigunit.jar`是Pig平台的核心组成部分,分别负责Pig Latin的执行和测试。Java编程在这里扮演了扩展Pig功能的角色,允许开发者用Java实现自定义逻辑。通过Ant进行编译管理,整个流程变得更加...

    pig-0.9.2.tar.gz下载

    总结,"pig-0.9.2.tar.gz"是一个重要的数据处理工具,它通过Pig Latin语言简化了Map-Reduce的开发,使得非Java开发者也能轻松应对大数据挑战。通过深入理解和熟练使用Pig,我们可以更高效地挖掘和利用大规模数据,...

    Apache Pig用法总结

    Twitter就是一个实际的例子,它使用Pig来处理大量数据。Pig之所以受到青睐,是因为它简化了数据处理流程,降低了编程的复杂性,并且相较于传统编程语言,可以减少大量的代码量。 在配置Pig语法高亮时需要注意的是,...

    pig-0.9.1.tar

    六、使用Pig Latin进行数据处理 Pig Latin是Pig的编程语言,用户可以通过编写简单的语句来处理数据。例如,以下是一个简单的Pig Latin脚本,用于统计文本文件中单词的数量: ``` grunt> data = LOAD 'input.txt' AS ...

    [原创]Apache_Pig的一些基础概念及用法总结

    ### Apache Pig的基础概念及用法总结 #### 一、引言 Apache Pig是一种高级的数据流语言,用于在Hadoop平台上处理大规模数据集。它通过提供一种抽象层,简化了复杂的大规模数据处理任务,使用户能够更加专注于数据...

    pig-0.17.0.tar的安装包,

    总结,Apache Pig-0.17.0 提供了一个强大而灵活的平台,用于处理大规模数据。正确安装并配置Pig,结合Pig Latin的使用,可以极大地提高数据处理的效率和便捷性。通过不断的实践和学习,你将能更好地掌握Pig的潜力,...

    pig-hive编程指南

    总结,Pig和Hive都是强大的大数据处理工具,它们提供了抽象层,使得开发者无需直接编写MapReduce代码,从而更加专注于业务逻辑。理解并熟练运用Pig Latin和HiveQL,能够有效提升大数据分析项目的工作效率和灵活性。...

    大数据pig实战

    无论是对Hive还是对Pig的使用,都需要在Hadoop生态系统中进行,这要求使用者对整个大数据处理平台有全面的了解。随着技术的不断发展,大数据分析的工具和方法也在持续进化,掌握并能够灵活运用这些工具对于数据分析...

    Pig Latin: A Not-So-Foreign Language for Data Processing

    例如,在处理大规模的日志文件时,使用Pig相比直接使用Hadoop能够显著提高效率。这不仅节省了宝贵的时间资源,也降低了错误率和维护成本。 #### 总结 Pig Latin及其支持系统Pig为数据处理领域带来了一股清新的变革...

    Apache pig的性能优化

    总结以上知识点,Apache Pig提供了一种有效的方式来处理和分析大数据,它基于Hadoop并使用类SQL的Pig Latin语言来简化MapReduce编程。Hortonworks是推动Hadoop生态系统发展的关键团队,提供了Hortonworks Data ...

    pig-0.12.0(Ubuntu)

    接着,可以通过添加Apache的官方仓库,使用apt-get命令来安装Pig。安装完成后,配置Pig的环境变量,包括HADOOP_HOME和PIG_HOME,并将Pig的bin目录添加到PATH变量中,这样就可以在终端直接运行Pig命令了。 **使用...

    Pig分析报告.pdf

    Pig Latin 解决了 MapReduce 的这些问题,它提供了一种高级抽象的数据流语言。Pig Latin 的语句通常是逐步执行的,每一步都对应一个数据转换操作,如过滤(FILTER)、分组(GROUP)和聚合(AGGREGATE)。这种编程...

    开源项目-esimov-pigo.zip

    总结来说,Pigo是一个纯Go实现的面部检测库,它的优点在于轻量、高效且不依赖外部库,特别适合在资源有限的环境中进行人脸识别。开发者可以通过简单的API接口快速集成到自己的项目中,实现面部检测功能。对于需要在...

    Hadoop大数据处理讲义-C10. Hive_Pig.pdf

    总结,Hive和Pig都是Hadoop生态系统中的重要工具,它们为大数据处理提供了方便的接口,使得数据分析工作更为高效。在实际应用中,可以根据数据的特性和需求选择适合的工具,或者结合两者的优势进行数据处理。

    java-pig-latin:Pig Latin,使用Java!

    总结来说,通过学习如何使用Java实现Pig Latin,开发者不仅可以深入理解字符串操作和条件逻辑,还能提升对面向对象编程的理解。这种练习有助于提高编程技能,同时增加了对语言转换规则的趣味性认知。

    7.Hadoop入门进阶课程_第7周_Pig介绍、安装与应用案例.pdf

    通过上述内容,我们不仅了解了Pig的基本概念和使用方法,还学会了如何在实际环境中搭建Pig环境以及如何利用Pig进行数据分析。这对于希望深入学习Hadoop生态系统并掌握大数据处理技术的学习者来说是非常有价值的。

    debug-pig:调试猪脚本的例子

    总结起来,调试Pig脚本需要理解Pig Latin的语法和操作,熟练掌握日志分析,善用测试和调试工具,并且充分利用社区资源。通过以上方法,即使面对复杂的大数据处理问题,也能游刃有余。在实际工作中,不断实践和学习,...

Global site tag (gtag.js) - Google Analytics