Wireshark json 的捕捉到火花

Wireshark json's capture to spark

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

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

问题是我似乎无法以帮助我找到每个数据的方式正确加载 JSON 文件。我试过 json.loads ,还有 Spark 中的 SQLContext 。 spark 中的 Sqlcontext 不会有太大帮助,因为我想让它适应 spark 流模块。 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"
        },....]
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()