Wireshark json捕获火花

时间:2017-09-04 09:26:05

标签: python json apache-spark wireshark

我有一个来自wireshark的JSON文件,我需要加载到Spark。我正在使用PySpark。

我需要从这些JSON文件中提取数据,然后将该数据作为json文件输出。

问题是我似乎无法正确加载JSON文件,以帮助我找到每个数据。我尝试了json.loads,也尝试了Spark中的SQLContext。 Spark中的Sqlcontext赢得了很多帮助,因为我想让它适应火花流模块。 Json文件看起来像这样:

[
  {
    "_index": "packets-2017-07-27",
    "_type": "pcap_file",
    "_score": null,
    "_source": {
      "layers": {
        "frame": {
          "frame.encap_type": "1",
          "frame.time": "May 13, 2004 11:17:09.864896000 Afr. centrale Ouest",
          "frame.offset_shift": "0.000000000",
          "frame.time_epoch": "1084443429.864896000",
          "frame.time_delta": "0.000000000",
          "frame.time_delta_displayed": "0.000000000",
          "frame.time_relative": "2.553672000",
          "frame.number": "13",
          "frame.len": "89",
          "frame.cap_len": "89",
          "frame.marked": "0",
          "frame.ignored": "0",
          "frame.protocols": "eth:ethertype:ip:udp:dns",
          "frame.coloring_rule.name": "UDP",
          "frame.coloring_rule.string": "udp"
        },....]

1 个答案:

答案 0 :(得分:0)

rdd = sc.wholeTextFiles("abc.json")     
import re
json_rdd = rdd.map(lambda x : x[1])\
.map(lambda x : re.sub(r"\s+", "", x, \
flags=re.UNICODE))


printRdd(json_rdd)
df = spark.read.json(json_rdd)
df.printSchema()