在Spark Scala中过滤掉名称空间xml

时间:2016-06-09 13:50:53

标签: regex parsing apache-spark filter spark-streaming

我正在尝试从火花串流读入的xml中过滤命名空间信息。下面是一个示例xml。这是我正在尝试的代码。它应该从xml过滤掉所有" ns:0"," ns:1" ...由于火花流,xml将作为rdd读入。

TeamRecord

所需格式:

val message_filter = message.filter(x => x.matches("([n][s][0-9]:)+")))

<?xml version="1.0"?>
<Period>
  <AllContacts>
    <Entry>
      <ns0:entity-Person>
        <ns0:CellPhone>3095550101</ns0:CellPhone>
        <ns0:FirstName>Brrzzz</ns0:FirstName>
        <ns0:LastName>Grbbs</ns0:LastName>
      </ns0:entity-Person>
      <ns0:PrimaryPhone>mobile</ns0:PrimaryPhone>
    </Entry>
  </AllContacts>
  <State>TX</State>
</Period>

1 个答案:

答案 0 :(得分:0)

如果x.matches接受正则表达式,那么正则表达式应该如下所示:/ns\d+:([\w-]+)/g这里的示例是regex101.com