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()
我有一个来自 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()