我正在使用spark java API将不同类型的文件(text,xml,csv等)解析为特定的文本文件格式。此输出文件维护文件头,开始标记,数据头,数据和结束标记的顺序。所有这些元素都在某个时刻从输入文件中提取出来。 我试图通过以下两种方式实现这一目标:
虽然我不关心实际数据的排序,但是第一种方法我无法保持文件头,开始标记,数据标题和结束标记的所需顺序。 后者适用于我,但我知道这不是有效的方法,可能会导致BIG文件出现问题。
有没有有效的方法来实现这一目标?
答案 0 :(得分:0)
你的假设是正确的。第二种选择只是取消了应用程序的分布方面,因此它不具备可扩展性。对于订单问题,由于概念是异步的,当数据驻留在不同节点时,我们无法跟踪订单。你可以做的是一些预处理,取消订单的需要。意思是,将行合并到行顺序无关紧要的点,然后才分发文件。除非您可以对文件结构做出假设,例如属于一起的行数,否则我将使用上述内容。