使用 scalding 或 scala 删除文件尾记录
Posted
技术标签:
【中文标题】使用 scalding 或 scala 删除文件尾记录【英文标题】:Remove file trailer record using scalding or scala 【发布时间】:2015-03-04 12:35:59 【问题描述】:我正在尝试使用 Pipe (cascading.pipe.Pipe) 来读取文件。 因此,文件中的每条记录都遵循一个模式,但尾部记录除外;每当管道读取代码执行时,它都会抛出异常,因为预告片记录与模式不匹配。 管道看起来像:
fieldlst:List(col1, col2, col3)
val filtersInput = Csv(inputFilePath, separator = "|", fields = fieldlst, skipHeader = true) .读
谁能告诉我一个解决方案。通过读写文件删除预告片似乎是一个简单的解决方案,但为此,我必须读写整个文件并且文件可能非常大。
【问题讨论】:
【参考方案1】:您可以使用 TextLine,然后使用“|”分割记录,而不是使用 Csv 管道。
【讨论】:
感谢 satendra !!!确实有效,但是当我使用 TextLine 读取文件并写回它时,它包括每行开头的序列值,例如1,2,3 ...我怎样才能避免这种情况,或者有没有一种方法可以简单地在阅读后不写入文件?注意:- 我在执行 TextLine 时覆盖 FlowListener。以上是关于使用 scalding 或 scala 删除文件尾记录的主要内容,如果未能解决你的问题,请参考以下文章
Scio:Apache Beam和Google Cloud Dataflow的Scala API