当前位置: 首页 > 知识库问答 >
问题:

加载时出错。Pig脚本中的gz文件

唐啸
2023-03-14

我在HDFS中有大量. gz文件,我正在尝试使用PigStorage加载它们来处理数据,我得到了以下异常

Java语言io。EOFException:组织的输入流意外结束。阿帕奇。hadoop。io。压紧解压缩流。在org上解压缩(DecompressorStream.java:137)。阿帕奇。hadoop。io。压紧解压缩流。在java上读取(DecompressorStream.java:77)。io。输入流。在org上读取(InputStream.java:85)。阿帕奇。hadoop。util。LineReader。org上的readDefaultLine(LineReader.java:205)。阿帕奇。hadoop。util。LineReader。org上的readLine(LineReader.java:169)。阿帕奇。hadoop。mapreduce。lib。输入LineRecordReader。org上的nextKeyValue(LineRecordReader.java:139)。阿帕奇。猪内置。文本加载器。org上的getNext(TextLoader.java:55)。阿帕奇。猪后端。hadoop。executionengine。mapReduceLayer。PigRecordReader。nextKeyValue(PigRecordReader.java:194)位于org。阿帕奇。hadoop。映射。MapTask$NewTrackingRecordReader。org上的nextKeyValue(MapTask.java:530)。阿帕奇。hadoop。mapreduce。MapContext。org上的nextKeyValue(MapContext.java:67)。阿帕奇。hadoop。mapreduce。映射器。在org上运行(Mapper.java:144)。阿帕奇。hadoop。映射。MapTask。在org上运行NewMapper(MapTask.java:763)。阿帕奇。hadoop。映射。MapTask。在组织上运行(MapTask.java:363)。阿帕奇。hadoop。映射。儿童4美元。在java上运行(Child.java:255)。安全AccessController。javax上的doPrivileged(本机方法)。安全授权。主题doAs(Subject.java:396)位于org。阿帕奇。hadoop。安全用户组信息。doAs(UserGroupInformation.java:1232)位于org。阿帕奇。hadoop。映射。小孩main(Child.java:249)

这可能是某些文件损坏的结果。

pig是否有任何类型的错误处理,我可以使用它跳过已损坏的文件。以下是我正在使用的示例代码:

cal  = load '$inputdir/CAL/*/*/*/*/*/*/*.gz' USING PigStorage('\t');

共有1个答案

缪兴腾
2023-03-14

它可能与损坏的文件有关。

您可以使用映射。最大映射。失败。百分比设置(或映射最大减少故障百分比,但这与您的情况无关),以控制可以忽略的故障百分比。

问题是单个映射器可以读取多个gz文件,因此无法通过映射器的损坏文件也可以跳过正常的文件。

 类似资料:
  • 我正在尝试使用spring xd执行pig代码段,但不能这样做。我使用以下命令创建了一个作业 PigTest作业定义在spring xd模块/作业目录中定义如下 已成功创建作业,但部署失败。日志文件如下所示: null

  • 我试图在Protege3.5中加载一个OWL2.0本体。然而,每次我尝试的时候,它都会给出一个错误。 本体很好,因为当我从Java代码运行它们时,Hermit Reasoner和Pellet Reasoner在它上面工作得很好。你能告诉我为什么会出现错误信息以及如何修复它吗。

  • 问题内容: 我是猪脚本,Hadoop,Hbase的新手。这是我需要知道的。我想运行一个Pig脚本,我不想在我的Java程序中嵌入该Pig脚本,并希望通过传递必要的Pig脚本和参数(可能是参数文件)的任何Pig Execution方法来运行它。核心Pig库或任何其他库是否提供了执行Pig脚本的方式。我已经尝试过使用Java运行时exec方法,我用空格分隔的字符串传递了一些参数,所以我放弃了通过运行时

  • 本文向大家介绍Powershell直接脚本时出现无法加载文件因为禁止执行脚本,包括了Powershell直接脚本时出现无法加载文件因为禁止执行脚本的使用技巧和注意事项,需要的朋友参考一下 在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"。 所在位置 行:1 字符: 17

  • 我正在尝试使用Maven编写一个JavaFx8应用程序。我编写了一个简单的应用程序主类和一个fxml文件(一个不执行任何操作的根fxml文件)。 当我尝试加载fxml根文件时,出现错误“Location is not set”: 我不是JavaFx8的新手,我已经遇到过这种错误,但这次我没有发现问题。 我的类是:app.java rootLayout.fxml: 我检查了打印出getClass输出

  • 问题内容: 我想从CDN加载脚本,然后在React中执行该脚本公开的功能: 该脚本有时需要花费一些时间(通常是第一次)加载,并且何时调用“ foo”不可用,并且出现如下错误: TypeError:无法读取未定义的属性“ render” 如何确保脚本成功加载后调用? 问题答案: 根据React Component Specs和Lifecycle的说法,我认为在componentWillMount()