首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pig介绍和相对于Hive的优势

2.复杂类型 pig有3个复杂数据类型:map、tuple和bag。 map:是一种chararray和数据元素之间的键值对映射,其中数据元素可以是任意的pig类型,包括复杂类型。...如:[‘name’#’bob’,’age#55’]。 tuple:tuple是一个定长的,包含有序pig数据元素的集合。tuple可以分为多个字段,每个字段对应着一个数据元素。...一个tuple相当于sql中的一行,而tuple的字段相当于sql中的列。 tuple常量使用圆括号来指示tuple结构,使用逗号来划分tuple中的字段。如(‘bob’,55)。...bag:是一个无序的tuple集合,因为它无序,所以无法通过位置获取bag中的tuple。...bag常量是通过花括号进行划分的,bag中的tuple用逗号来分隔,如{(‘bob’,55),(‘sally’,52),(‘john’,25)}。

1.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?

    题目部分 如何在Oracle中写操作系统文件,如写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...image.png 其它常见问题如下表所示: 问题 答案 Oracle中哪个包可以获取环境变量的值? 可以通过DBMS_SYSTEM.GET_ENV来获取环境变量的当前生效值。...在CLIENT_INFO列中存放程序的客户端信息;MODULE列存放主程序名,如包的名称;ACTION列存放程序包中的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在存储过程中暂停指定时间? DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...如何在Oracle中写操作系统文件,如写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。

    28.8K30

    如何使用Pig集成分词器来统计新闻词频?

    散仙在上篇文章中,介绍过如何使用Pig来进行词频统计,整个流程呢,也是非常简单,只有短短5行代码搞定,这是由于Pig的内置函数TOKENIZE这个UDF封装了单词分割的核心流程,当然,我们的需求是各种各样的...关于如何在Pig中自定义UDF函数,可以参考散仙的这一篇文章: http://qindongliang.iteye.com/blog/2171303 下面给出,散仙扩展的基于中文分词的UDF类:...terms){ output.add(mTupleFactory.newTuple(t.getName()));//获取分词token,放入tuple,然后以bag...toLowerCase(), input), bagSchema, DataType.BAG...(2)注册jar包时,如果有依赖,也需要将依赖jar包注册在pig里。 (3)在真实的应用中,统计分析前,最好将一些无用的数据给过滤掉。

    93650

    Apache Pig

    Atom:任何单个值,无论其数据类型,都认为是原子的; Tuple:存储一系列字段值,可以是任何类型,类似行; Bag:一组无序的元组,每个元组中字段数量任意,也就是不需要对齐; Map:key-value...学生)) DataType:int、long、float、double、chararray、Bytearray、Boolean、Datetime、Biginteger、Bigdecimal、Tuple、Bag...(从关系中删除行)、DISTINCT(从关系中删除重复行)、FOREACH(基于数据列生成数据转换)、GENERATE、STREAM(使用外部程序转换关系)、JOIN(连接两个或多个关系)、COGROUP...(将数据分组为两个或多个关系)、GROUP(在单个关系中对数据分组)、CROSS(创建两个或多个关系的向量积)、ORDER(基于一个或多个字段排序关系)、LIMIT(从关系中获取有限个元组)、UNION...在交互式过程中,定义的Relation都没有真正的执行,真正执行需要类似DUMP、LOAD、STORE等操作才会触发,类似Spark中的Action算子; student = LOAD '.

    81520

    对比Pig、Hive和SQL,浅看大数据工具之间的差异

    【编者按】在笔者看来,语言和工具之争从来都没有太大的意义,所谓存在既有道理,如何在场景下做出最合适的选择才至关重要。...Apache Pig对Multi-query的支持减少了数据检索循环的次数。Pig支持map、tuple和bag这样的复合数据类型以及常见的数据操作如筛选、排序和联合查询。...这些优势让Pig在全球范围内都得到了广泛的应用。Pig简便的特点也是雅虎和Twitter使用它的原因之一。...在SQL中我们指定需要完成的任务而在Pig中我们则指定任务完成的方式。...什么时候用Apache Pig 当你需要处理非格式化的分布式数据集时,如果想充分利用自己的SQL基础,可以选择Pig。

    3.3K80

    Apache Pig学习笔记之内置函数(三)

    1 简介 Pig附带了一些的内置函数,这些函数包括(转换函数,加载和存储函数,数学函数,字符串函数,以及包和元组函数),在Pig里面主要有二种函数分别是内置函数和自定义的UDF函数,他们区别在于 第一...:内置函数不需要被注册,因为Pig本身知道他们在哪里 第二:内置函数不需要定义引用路径,因为Pig本身知道在哪里能找到他们 2 动态调用 Java里面已经存在大量的工具类库,那么在Pig里面,我们也可以通过反射来灵活的定义某一类你需要用到的函数...filter过滤数据中 3.7 max 用法:max(expression)计算单列中最大的数值值,或者字符串的最大值(字典排序),同count一样需要Group支持 3.8 min 用法:min(...3.11 Subtract 用法:subtract(expression1,expression2),对两个bag里面的tupe做差值操作,并返回差值部分一个新的bag 3.12 Sum 用法sum...4 加载/存储函数 Load和store函数决定了数据怎样加载到pig里和怎么从pig里输出,pig提供了一系列load和store函数,当然你可以通过udf函数重写你自己定制的加载和存储函数。

    1.8K40

    进击大数据系列(十四)Hadoop 数据分析引擎 Apache Pig

    性能问题:Pig 对于一些复杂的查询可能性能较差,并且可能会产生一些不必要的开销,如多余的数据复制、排序等。 不支持事务:Pig 不支持 ACID 事务,因此在某些场景下可能不适用。...元组与RDBMS表中的行类似。例:(Raja,30) Bag(包) 一个包是一组无序的元组。换句话说,元组(非唯一)的集合被称为包。每个元组可以有任意数量的字段(灵活模式)。包由“{}"表示。...例:{(Raja,30),(Mohammad,45)} 包可以是关系中的字段;在这种情况下,它被称为内包(inner bag)。...在此示例中,它列出了 /pig/bin/ 目录中的文件。...),pig 的表被称为包(bag),包中存在行(Tuple)准确地说叫元组,每个元组中存在多个列,表允许不同的元组有完全不相同的列。

    59020

    Apache Pig学习笔记(二)

    1,pig里所有的保留关键字: -- A assert, and, any, all, arrange, as, asc, AVG -- B bag, BinStorage, by, bytearray...,在JDBC中,我们既可以通过列名引用,也可以通过索引下标引用,在pig里,也支持这两种用法,下标引用需要加上$0,$1这样的数字标识。...,pig特有关键词,负责从一个指定的路径加载数据源,路径可以使用通配符与hadoop的路径通配符保持一致 20,mapreduce,在pig中,以MR的方式执行一个jar包 21,order by...里面的存储结果的函数,可以将一个集合以指定的存储方式,存储到指定的地方 26,stream,提供了以流的方式可以在pig脚本中,与其他的编程语言交互,比如将pig处理的中间结果,传给python,perl...文件 29,define,给UDF的引用定义一个别名 30,import,在一个pig脚本中,使用imprt关键词引入另外一个pig脚本

    1.1K90

    【数据工具】对比Pig、Hive和SQL,浅谈大数据工具差异

    Apache Pig对Multi-query的支持减少了数据检索循环的次数。Pig支持map、tuple和bag这样的复合数据类型以及常见的数据操作如筛选、排序和联合查询。...这些优势让Pig在全球范围内都得到了广泛的应用。Pig简便的特点也是雅虎和Twitter使用它的原因之一。...在SQL中我们指定需要完成的任务而在Pig中我们则指定任务完成的方式。...Pig脚本其实都是转换成MapReduce任务来执行的,不过Pig脚本会比对应的MapReduce任务简短很多所以开发的速度要快上很多。...1.什么时候用Apache Pig 当你需要处理非格式化的分布式数据集时,如果想充分利用自己的SQL基础,可以选择Pig。

    85470

    Hadoop 2.0 大家族(二)

    Hbase提供了两个版本的回收方式:一是对每个数据单元,只存储指定个数的最新版本;二是保存最近一段时间内的版本(如七天),客户端可以按需查询。   ...(5)Pig:可以使用Pig Latin流式编程语言操作Hbase中的数据,和Hive类似,本质上最终也是编译成MR Job来处理Hbase表数据,适合做数据统计。...(6)Hive:同Pig类似,用户可以使用类SQL的HiveQL语言处理Hbase表中数据,当然最终本质依旧是HDFS与MR操作。...Filed、Tuple、Bag、Map。 (2)Pig Latin运算符   Pig Latin提供了算术、比较、关系等运算符,这些运算符的含义和用法与其他语言(C,Java)相差不大。...【例3】 按要求完成问题:① 进入Pig命令行,查看并练习常用命令。② 使用Pig Latin实现WordCount。 解:   问题①即在Pig命令行中输入help即可。

    4600

    让Pig在风暴中飞驰——Pig On Storm

    熟悉Hadoop的应用开发人员可能有这样的感受,对于一般的数据分析应用,用Hive或者Pig去编写程序,比直接用MapReduce效率要高很多,后期程序维护过程中修改Hive、Pig脚本也比MapReduce...2.3 Pig On Storm编译Pig代码流程 1) IDE编辑书写Pig脚本:用户在支持Pig语法高亮的IDE中,根据业务实际需求书写Pig脚本,每一个Pig语句独占一行。...3) AST生成的Logical Plan(逻辑执行计划):通过分析AST中的语句的输入、输出的关联关系。以RAW_DATA关系作为DATA_BAG关系的输入。...5) 通过Physical Plan生成Topology Plan:有了Physical Plan后,需要将这个Plan运行在具体的平台上( 如,Storm),Storm在运行实体是Spout,Bolt...第②行:分割从文件中读取出来的每一行数据(这行代码与Pig完全一样)。

    842100

    如何给Apache Pig自定义UDF函数?

    近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,散仙本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)散仙一直没有接触过,所以只能临阵磨枪了,花了两天时间...,大致看完了pig官网的文档,在看文档期间,也是边实战边学习,这样以来,对pig的学习,会更加容易,当然本篇不是介绍如何快速学好一门框架或语言的文章,正如标题所示,散仙打算介绍下如何在Pig中,使用用户自定义的...并导入pig的核心包 java项目 2 新建一个包,继承特定的接口或类,重写自定义部分 核心业务 3 编写完成后,使用ant打包成jar 编译时需要pig依赖,但不用把pig的jar包打入UDF中 4...把打包完成后的jar上传到HDFS上 pig运行时候需要加载使用 5 在pig脚本里,注册我们自定义的udf的jar包 注入运行时环境 6 编写我们的核心业务pig脚本运行 测试是否运行成功 项目工程截图如下...脚本的末尾,去掉dump命令,加入 store e into '/tmp/dongliang/result/'; 将结果存储到HDFS上,当然我们可以自定义存储函数,将结果写入数据库,Lucene,Hbase

    1.1K60

    如何给Apache Pig自定义UDF函数?

    近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,本人本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)本人一直没有接触过,所以只能临阵磨枪了,花了两天时间...,大致看完了pig官网的文档,在看文档期间,也是边实战边学习,这样以来,对pig的学习,会更加容易,当然本篇不是介绍如何快速学好一门框架或语言的文章,正如标题所示,本人打算介绍下如何在Pig中,使用用户自定义的...pig的核心包 java项目 2 新建一个包,继承特定的接口或类,重写自定义部分 核心业务 3 编写完成后,使用ant打包成jar 编译时需要pig依赖,但不用把pig的jar包打入UDF中 4 把打包完成后的...jar上传到HDFS上 pig运行时候需要加载使用 5 在pig脚本里,注册我们自定义的udf的jar包 注入运行时环境 6 编写我们的核心业务pig脚本运行 测试是否运行成功 项目工程截图如下:...脚本的末尾,去掉dump命令,加入  store e into '/tmp/dongliang/result/'; 将结果存储到HDFS上,当然我们可以自定义存储函数,将结果写入数据库,Lucene,Hbase

    46110

    hadoop使用(六)

    •Pig是一种编程语言,它简化了Hadoop常见的工作任务。Pig可加载数据、表达转换数据以及存储最终结果。Pig内置的操作使得半结构化数据变得有意义(如日志文件)。...同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。 •Hive在Hadoop中扮演数据仓库的角色。...将pig加入到环境变量中: 输入 cd ~ 进入到用户主目录 vi .bashrc 最下边加入环境变量的配置 保存然后执行 . .bashrc 输入 pig -help进行测试,如果设置成功,则出现如下界面...,在pig.properties中加入 fs.default.name=hdfs://localhost:9000 mapred.job.tracker=localhost:9001 指向本地伪分布式的...PIG中的读写操作: LOAD 从文件装载数据到一个关系 LIMIT 限制元组个数为n DUMP 显示一个关系的内容,主要用于调试 STORE 将一个关系中的数据存储到一个目录中 输入执行: grunt

    1K60
    领券