摘要
热释光;博士,我从二进制代码中解码了avro,然后出现了一个语法奇怪的字符串,所有这些看起来都很正常,我只是不知道如何解析它,不想做一个自定义的解析器。
谢谢你的帮助,很抱歉问了一个可能很愚蠢的问题。
上下文
我使用spark流媒体从kafka主题中读取消息。
我用 fastavro.schemaless_reader
它返回了一个语法不熟悉的字符串。
问题
你知道这种格式叫什么吗?
有什么工具可以在spark/python中解析它吗?
作为最后的手段,我留下了定制解析器的选项。
以一条解码的消息为例:
{appVer=8.1.1-hmg-dev, organizationUntName=IF, mensagem=Open. [BL123], origem=MOBIL, status=LIBER, duration=3500, numer=1111111, app=APP_PA, registrationId=c3UASSQTiWvl_YA9DYpDV:APA91DS0D8TuzJDuCjj4tgbRNcJcbGfVcLNNGL20hfmaDYASIBRVEE2FnA4exnE4ZWTuupRX7FQkdcJiMWkNEatk8lehb4r_SVnktkFcpR7P7mabIabGInW2JUGK8gjagGZ6pGyweDkx, modalidade=00002, origemAb=null, sistemOp=null, eventSubType=LOGON, tokenAotp=, ip=error, coord=17.4220043,-184.01405, event=SUCESSO, magId=aWg4V01qSmlEWGJ6aExnc2xDMjAvWnZJbWZVPQ==, macAddr=33d94a3f7d2f8aff, geo={"ip":"error","hostname":null,"type":null,"continent_code":null,"continent_name":null,"country_code":null,"country_name":null,"region_code":null,"region_name":null,"city":null,"zip":null,"latitude":null,"longitude":null,"location":{"geoname_id":null,"capital":null,"languages":null,"country_flag":null,"country_flag_emoji":null,"country_flag_emoji_unicode":null,"calling_code":null,"is_eu":null},"time_zone":{"id":null,"current_time":null,"gmt_offset":null,"code":null,"is_daylight_saving":null},"currency":{"code":null,"name":null,"plural":null,"symbol":null,"symbol_native":null},"connection":{"asn":null,"isp":null},"security":{"is_proxy":null,"proxy_type":null,"is_crawler":null,"crawler_name":null,"crawler_type":null,"is_tor":null,"threat_level":null,"threat_types":null}}, organization=IFPF, codigo=40149, device=Android SDK built for x86, eventDate=1/1/20 2:13 PM}
请注意:
它没有引号的字符串分隔: origem=MOBILE
它使用等号作为键值分隔符: =
##注意事项
这些字段和类型相当于我从schema registry检索到的avro模式。所以我假设在二进制解码过程中没有错误。
根据相同的模式,除了空值和整数之外,所有的值都是字符串。没有数组。
我不知道这些消息是如何产生的,只知道它是使用合流工具产生的
我已经搜索了stackoverflow,并提前阅读了avro、kafka和confluent文档。找不到任何东西
再次感谢你的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!