问题标签 [pig-udf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-pig - 我们可以使用 Pig Udfs 拆分 PDF 文件吗?
我有 100 个 pdf,但每个 pdf 有 40 页,即。它没有被处理。实际上,我们正在尝试使用猪 Udf?? 我们可以使用 Pig Udf 拆分 PDF 文件吗?
java - Pig如何实例化UDF对象
有人能告诉我 Pig 如何实例化 UDF 对象吗?我使用 Pig 构建了一个管道来处理一些数据。我在多节点Hadoop
集群中部署了管道并且我想保存管道中每个步骤之后产生的所有中间结果。所以我用 Java 写了一个 UDF,它将在初始化时打开一个 HTTP 连接并以exec
. 另外,我将关闭finalize
对象的连接。
我的脚本可以简化如下:
InterStore 的代码可以简化如下:
但是,我发现 HTTP 连接无法像在本地模式下那样成功传输数据。如何处理?
python - 无法从 python 中的 pigutil 导入 outputSchema
这可能是一个非常基本的问题,我是猪和蟒蛇领域的新手。我正在尝试从 pigutil 导入 outputSchema。
outputSchema 在 python UDF 中使用如下:-
我在尝试运行和检查Python 命令行编辑器时遇到错误。
使用语句导入后
出现以下错误:-
我在这里想要实现的是编写一个 UDF,它将从 Pig 中的单个元组返回 2 个元组。我已经尝试过使用两个不同的生成语句的方法,然后将两者结合起来,但它的性能很重,因此选择了 UDF。
hadoop - Pig 生成一个关键更改列 - 将先前记录与当前记录进行比较,但列不同
我的输入数据将采用以下格式。
我需要根据 col1、col2、col3 的值删除重复项,但不是所有重复项。在 col3 的值更改为不同的值之前,记录被视为重复。例如。在上述数据中,第 4 条记录中的值 1 更改为值 2,因此在记录 1,2 和 3 中只应保留第 1 条。在记录 4,5 和 6 中,仅应保留第 4 名。在记录 7 和 8 中,应该只保留 7 个。最后两列实际上是日期列(生效日期和到期日期)。1,2 和 3 之类的重复项可能会出现多次(例如 1,2,3,4 和 5 可能具有相同的值),或者根本没有重复项。
我想到了两种方法,但不确定如何为其中任何一种编码。
所以我正在考虑生成一个 keychange 列(1 或 0),将所有欺骗的值从 1 更改为 0,并且当键(col1、col2、col3 的组合)发生变化时,应该设置这个 keychange 列的值到 1. 然后我可以过滤这个列。但是为此我需要编写一个 UDF(或者是否有任何具有类似功能的 UDF 可用?),因为这需要在传递给 udf 时输入按排序顺序,是否可以将排序数据传递给 udf?如果是这样,如何?这应该是什么样的UDF?或者即使我写了一个mapreduce代码,我应该如何继续,我应该在mapper中发出记录并在reducer中进行所有排序和生成列?请让我知道您的输入(mapreduce 编程的新手,因此您的想法将对我的学习有很大帮助,谢谢!)。
当我浏览“over”函数文档时,它只比较以前的记录和当前记录的同一列,如果我可以在基于 col4 排序后将当前记录的 col5(到期日期)与下一个记录的 col4(生效日期)进行比较(生效日期)按升序排列,我可以对 Col1、col2 和 Col3 进行分组,并消除那些生效日期与之前记录的到期日期相同的记录。但不确定如何使用 over 函数比较两个不同的列。请让我知道您对此的看法。
请让我知道是否有另一种更好的方法来解决这个问题。感谢您的时间!
hadoop - 如何根据给定的格式在 pig 中组合两行?
我正在尝试处理文件。截至目前,我得到如下所示的输出。
有没有其他方法可以得到类似的输出。
有人可以帮我吗。我正在尝试使用猪,但离这个还很远,我正在尝试用猪来解决这个问题以进行一些练习。
谢谢和问候, 安库什·雷迪
java - Pig UDF 在生成新元组时抛出 NullPointerException
我有一个 Pig UDF,它摄取一些数据,然后尝试以最小的方式转换这些数据。
但是,我不断收到以下错误:
错误 0:执行 [POUserFunc (Name: POUserFunc(udf.MyUDF)[tuple] - scope-38 Operator Key: scope-38) 时出现异常子项: []] 处为空:java.lang.NullPointerException
我的 UDF 获取数据并对其进行转换:
在调用元组工厂之前,我已经调试并确认 fieldOne、fieldTwo 和 fieldThree确实存在。也很明显,抛出异常是因为代码到达了catch
块,然后抛出了这个NullPointerException
错误。
目前尚不清楚为什么会发生这种情况。
根据 Pig 文档(Pig 0.14.0 API),我应该能够调用newTuple(java.util.List c)
相关项目。
我还定义了自己的模式,以确保在返回 pig 脚本时类型正确。
hadoop - 尝试在 pig 中使用 Python UDF 时无法存储别名 C
我的 Python UDF 代码:
我的猪脚本:
猪堆栈跟踪:
--------------- 错误 1002:无法存储别名 C
org.apache.pig.impl.logicalLayer.FrontendException:错误 1066:无法在 org.apache.pig.PigServer.openIterator(PigServer.java:1019) 在 org.apache.pig.tools.grunt 打开别名 C 的迭代器。 GruntParser.processDump(GruntParser.java:747) 在 org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:376) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser. java:231) 在 org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:81) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:206) 在 org.apache .pig.Main.run(Main.java:630) 在 org.apache.pig.Main.main(Main.java:176) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) 在 sun.reflect。DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.run(RunJar.java:221) at org.apache .hadoop.util.RunJar.main(RunJar.java:136) 原因:org.apache.pig.PigException: ERROR 1002: Unable to store alias C at org.apache.pig.PigServer.storeEx(PigServer.java:1122 ) at org.apache.pig.PigServer.store(PigServer.java:1081) at org.apache.pig.PigServer.openIterator(PigServer.java:994) ... 13 更多原因:org.apache.pig.backend .executionengine.ExecException:错误 0:执行时出现异常(名称:C:存储(hdfs://localhost:54310/tmp/temp1063554930/tmp-651585063:org.apache.pig.impl.io.InterStorage)-scope-16运算符键:scope-16):org.apache.pig.impl.streaming.StreamingUDFException:LINE:KeyError:'concatMult4'
在 org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:314) 在 org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POStore.getNextTuple(POStore.java: 159) 在 org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.runPipeline(FetchLauncher.java:157) 在 org.apache.pig.backend.hadoop.executionengine.fetch.FetchLauncher.launchPig(FetchLauncher.java: 81) 在 org.apache.pig.PigServer.launchPlan(PigServer.java:1474) 在 org.apache.pig.PigServer 的 org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.launchPig(HExecutionEngine.java:306) .executeCompiledLogicalPlan(PigServer.java:1459) at org.apache.pig.PigServer.storeEx(PigServer.java:1118) ... 15 更多原因:org.apache.pig.impl.streaming。StreamingUDFException: LINE : KeyError: 'concatMult4'
在 org.apache.pig.impl.builtin.StreamingUDF$ProcessErrorThread.run(StreamingUDF.java:503)
apache-pig - 无法打开别名的迭代器
我知道这是最重复的问题之一。我几乎到处都看过,没有任何资源可以解决我面临的问题。以下是我的问题陈述的简化版本。但在实际数据中有点复杂,所以我必须使用 UDF
我的输入文件:(input.txt)
我希望输出是
因此,我正在编写以下 UDF(Java 代码):
并将其包装成
下面是我的猪壳代码
我收到以下错误:
我知道它抱怨
但我确信这不是实际问题。如果我不使用 udf 并直接转储数据,我会得到输出。所以,这不是问题。
hadoop - 如何在 pig 中创建 UDF 以相对于另一个字段对列进行分类
我想在猪中使用 UDF 对一列相对于另一列进行分类。
我有的数据
预期产出
请建议
java - 在 pig 中使用 UDF 时出现错误 1070
2017-10-29 03:34:22,212 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 6, column 13> Syntax error, unexpected symbol at or near ''/home/harsh/Hunny/HadoopPractice/Pig/Upper.jar''
运行 pig 脚本时出现错误。
我如何注册和定义我的 UDF:
我的猪脚本:
我的罐子位置:
任何帮助表示赞赏:提前致谢