如何将json日志读取到数据框?

问题描述

我下面有实时流日志类型,其中包含文本类型和json类型。

2020-09-24T08:03:01.633Z 11.21.23.1 {"EventTime":"2020-09-24 13:33:01","Hostname":"abc-cde.india.local","Keywords":-1234}

我使用下面的结构来读取上面的日志,而没有添加条件来专门读取json,

schema = 
StructType(StructField("Date",DateType()),StructField("Source IP",StringType()),StructField("Evenet Type",StringType())
)
df = session.read.option("header","true").option("delimiter"," ").csv( "F:\\mypath\\ad_logs.txt",schema=self.schema) df.show()

所以DF返回为

| Date    |Source IP  | Event Type 
2020-09-24|11.21.23.1 |{"EventTime":"202

我想到了通过仅解析“事件类型”(单独使用某些方法,例如“ udf”)来为json值创建实际的模式,

但不确定这种情况是否正确。

我认为,由于我们已经了解json模式的结构,因此可以在读取文件本身时对其进行解析。

#so预期的输出将具有

| Date    | Source IP | EventTime         | Hostname            |Keywords |
2020-09-24|11.21.23.1 |2020-09-24 13:33:01| abc-cde.india.local | 1234

我正在寻找一种为以下类型创建结构化DF的方法,如果还有其他建议,那也将不胜感激。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)