1

스파크 스트리밍의 구현에 어려움을 겪고 있습니다. 카프카에서Spark Streamming : 여러 스키마를 가진 카프카에서 데이터 읽기

메시지는 내가 (여러 스키마를 가지고있는)는 카프카의 주제에서 메시지를 읽을 수하려고 더 많은 필드

{"event":"sensordata", "source":"sensors", "payload": {"actual data as a json}} 
{"event":"databasedata", "mysql":"sensors", "payload": {"actual data as a json}} 
{"event":"eventApi", "source":"event1", "payload": {"actual data as a json}} 
{"event":"eventapi", "source":"event2", "payload": {"actual data as a json}} 

이 같은 있지만으로 보인다. 각 메시지를 읽고 이벤트 및 소스 필드를 찾고 데이터 세트로 저장할 위치를 결정해야합니다. 실제 데이터는 하나의 레코드 인 JSON으로 필드 페이로드에 있습니다.

이 대안이나 다른 대안을 구현할 수있는 사람이 있습니까?

동일한 주제의 여러 스키마가있는 메시지를 보내고 소비하는 것이 좋은 방법입니까? 사전에

감사합니다, 당신은 단지 일부 열을 걱정하는 경우 JavaBean에 JsonString 변환

+0

당신 제조자가 time..then에서 각 메시지를 보낼 수있는 경우 jsonString이 문자열을 구문 분석 할 수 시도하고 의지 할 수 키와 값을 가져옵니다. – Nilesh

+0

avro 스키마를 사용하고 있습니까? 그렇다면 avro는 당신의 문제를 해결할 스키마 진화를 가지고 있습니다. 그렇지 않다면 avro 스키마를 사용해보십시오. – LuckyGuess

+0

@Nilesh 그래, 파싱 한 후에 키 값을 얻을 수는 있지만 파싱 된 데이터에서 데이터 세트를 만들고 어딘가에 저장하려면 어떻게해야하나요? 그 메시지에는 하나의 레코드 만 들어 있습니다. –

답변

0

+0

필자는 필요한 정확한 데이터 인 페이로드 필드를 얻을 수 있지만이 메시지를 사례 클래스별로 분리하는 방법은 무엇입니까? –