亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【學習打卡】第1天 Spark 學習通用的數據處理技術

標簽:
Spark

课程名称:Spark+ClickHouse实战企业级数据仓库

课程章节: 初识Grok通用数据解析器

主讲老师:xiaochen

课程内容:

今天学习的内容包括:

Grok数据解析器的使用——在生产环境中,日志的格式五花八门,大部分时候不会有结构化的日志数据,如果自定义数据解析器,灵活性不高,而Grok提供了灵活的数据解析格式,可以灵活的将日志数据进行解析,并最终得到结构化的日志数据,提供给数据端使用。

Grok工具类的封装——Grok解析器在使用过程中,有许多步骤是可以复用的,将其封装为工具类可以方便后续使用。

在Spark代码中使用Grok——Grok多用在数据解析,而在spark中对数据进行解析,可以提高性能。

课程收获:

        在Spark中使用Grok数据解析器,可以先封装一个UDF工具类,因为注册UDF函数的动作重复性很高,提前封装可以方便使用。在封装好Grok的UDF工具类后,在需要使用的地方进行调用。

        需要注意的是,利用Grok解析的日志,在DataFrame中是一个字段存储整个结构化日志信息,可读性差,需要我们手动将这个字段拆开,把一个日志字段拆为多个字段后,要调用dataframe的drop方法,把日志字段删除。

        在使用Grok的UDF时,有两个地方存在性能优化的可能,分别是读取Grok的patterns和调用compile生成Grok这两个地方。优化时可以将他们从UDF方法中提出来,在driver端执行,但这样做又会遇到两个问题

        一是cluster模式下,spark读取不到本地文件,这个问题,我们可以将文件存放在hdfs进行解决。

        二是Grok本提出UDF函数后,在driver端生成,但Grok对象无法序列化,这就导致UDF中无法在多节点使用Grok,解决方法是修改Grok源码,实现Serializable接口,实现序列化。    


        以上是今天学习所得。

https://img4.sycdn.imooc.com/62e8d0250001bdaf20571206.jpg

https://img3.sycdn.imooc.com/62e8d05e0001fd9421601380.jpg

點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
6
獲贊與收藏
2

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消