2016-06-09 1 views
0

스파크 스트리밍을 통해 읽는 XML에서 네임 스페이스 정보를 필터링하려고합니다. 아래는 샘플 XML입니다. 이것은 내가 시도하는 코드입니다. 그것은 XML에서 모든 "ns : 0", "ns : 1"을 필터링해야합니다. 스파크 스트리밍 때문에 xml은 rdd로 읽혀집니다.Spark Scala에서 네임 스페이스 xml 필터링 필터링

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> 

원하는 형식 : 정규식 이런 식으로 뭔가 보일 것보다 x.matches는 정규 표현식을 받아

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

답변

0

, 경우 /ns\d+:([\w-]+)/g 여기가 regex101.com

의 예입니다