Python 3.x 如何将json日志读取到数据帧?
我有以下实时流日志类型,其中包含文本类型和json类型Python 3.x 如何将json日志读取到数据帧?,python-3.x,pyspark,apache-spark-sql,spark-streaming,pyspark-dataframes,Python 3.x,Pyspark,Apache Spark Sql,Spark Streaming,Pyspark Dataframes,我有以下实时流日志类型,其中包含文本类型和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 = Struc
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
我考虑过为json值创建实际的模式,只解析“事件类型”,分别使用一些方法,如“udf”
但不确定这是否是解决这一问题的正确方法
我认为,既然我们已经知道json模式的结构,我们可以在读取文件本身的同时解析它
#因此,预期的输出将具有
| 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,如果有任何其他建议,也非常感谢
谢谢