XML 使用 Storm streaming 和 spark streaming 进行解析

XML parse with Storm streaming and spark streaming

如何解析 Storm 和 Spark 流中的 XML 数据?例如在 Spark 流中;

// Define spark streaming MAP function.
private static final Function<XML_DOCUMENT_TYPE, MY_JAVA_CLASS> parsingXMLFunc = (doc -> {
    // create my java object
    MY_JAVA_CLASS mjc = new MY_JAVA_CLASS();         

    // classic xml parsing  
    List<String> parsed_doc = doc.parse(); // etc
    mjc.temperature = parsed_doc[0];
    mjc.accelerometer = parsed_doc[1];

    return mjc;           
});

在这个例子中,Spark可以并行解析xml吗?

或 Storm 流式传输示例;

@Override
public void execute(Tuple tuple) {
    // create my java object
    MY_JAVA_CLASS mjc = new MY_JAVA_CLASS();         

    // classic xml parsing
    Document doc = tuple.get(0);
    List<String> parsed_doc = doc.parse(); // etc
    mjc.temperature = parsed_doc[0];
    mjc.accelerometer = parsed_doc[1];

    _collector.emit(new Values(mjc));  
};

在上面的例子中,XML解析操作是并行完成的吗?或者您有更好的方法吗?

我没有在 Spark 工作过。关于 Storm,您可以创建一个函数来执行 XML 解析(使用您喜欢的一些常见 java XML 解析器)并在 "execute" 方法中调用该函数。这将 运行 并行,具体取决于您为应用程序提供的工作者和执行者的数量。