所以我处理了很多日志数据,最后我得到了各种类型日志的不同长度的行。
例如我会得到:
(“警告”,“06”,“05”,“2017”,“09”,“15”,“证书问题”,“错误的SSL”)
(“ERROR”,“06”,“05”,“2017”,“09”,“15”,“403”,“不够 带宽”, “巴黎”, “48.15”, “55.16”)
(“INFO”,“06”,“05”,“2017”,“09”,“15”,“用户连接”)
但对于一种类型的日志,它们将始终具有相同的结构和长度。那我该怎么办?
我应该为每种类型的日志创建Spark DF吗? (对我来说不好,因为我需要跨越日志进行分析)
我应该采用NoSQL方法吗?所有相互字段作为日期,小时等。加上对应于每种类型的日志信息的末尾的数组信息。如果这个,我怎么能在Spark中做到这一点? Spark DF API不允许这样,对吧?警告和错误日志将成为Spark DF行:
(“警告”,“06”,“05”,“2017”,“09”,“15”,[“证书问题”,“错误的SSL”]) (“ERROR”,“06”,“05”,“2017”,“09”,“15”,[“403”,“不够” 带宽”, “巴黎”, “48.15”, “55.16”])
最后我应该在Spark DF中创建很多变量吗?像所有相互列一样加上 warn_desc1,warn_desc2,error_desc1,error_desc2,error_desc3,error_desc4,error_desc5,info_desc1 ?这意味着很多空值,我的意思是对于错误的行,对应于警告和 Infos 的所有字段都将为空!这是一个好方法吗?一个例子:
你会做什么?我想看看这个问题类型的Spark理念是什么!所有方法都很好吗?或者是否有一些被禁止我的想法?( “ERROR”, “06”, “05”, “2017”, “09”, “15”,的空下,的空下, “403”, “不够 带宽”, “巴黎”, “48.15”, “55.16”,的空)
非常感谢你的帮助,祝你周末愉快!
整蛊:^)