Scapy会与Python 3.2兼容吗?我一直试图找到一些关于它如何执行的信息,因为Scapy网站上有关于Python 3.X兼容性的相当稀少(如果有的话)信息,而且我没有提供任何信息.有没有人尝试在Python 3.X上使用它以及它是如何执行的?
所以,我在Spark中有一个DataFrame,如下所示:
它有30列:只显示其中的一些!
[ABCD,color,NORMAL,N,2015-02-20,1]
[XYZA,color,NORMAL,N,2015-05-04,1]
[GFFD,color,NORMAL,N,2015-07-03,1]
[NAAS,color,NORMAL,N,2015-08-26,1]
[LOWW,color,NORMAL,N,2015-09-26,1]
[KARA,color,NORMAL,N,2015-11-08,1]
[ALEQ,color,NORMAL,N,2015-12-04,1]
[VDDE,size,NORMAL,N,2015-12-23,1]
[QWER,color,NORMAL,N,2016-01-18,1]
[KDSS,color,NORMAL,Y,2015-08-29,1]
[KSDS,color,NORMAL,Y,2015-08-29,1]
[ADSS,color,NORMAL,Y,2015-08-29,1]
[BDSS,runn,NORMAL,Y,2015-08-29,1]
[EDSS,color,NORMAL,Y,2015-08-29,1]
Run Code Online (Sandbox Code Playgroud)
因此,我必须将此dataFrame转换为Scala中的键值对,使用该键作为Dataframe中的一些列,并为从索引0到计数(不同键数)的键分配唯一值.
例如:使用上面的情况,我希望在Scala中的map(键值)集合中有一个输出,如下所示:
([ABC_color_NORMAL_N_1->0]
[XYZA_color_NORMAL_N_1->1]
[GFFD_color_NORMAL_N_1->2]
[NAAS_color_NORMAL_N_1->3]
[LOWW_color_NORMAL_N_1->4]
[KARA_color_NORMAL_N_1->5]
[ALEQ_color_NORMAL_N_1->6]
[VDDE_size_NORMAL_N_1->7]
[QWER_color_NORMAL_N_1->8]
[KDSS_color_NORMAL_Y_1->9]
[KSDS_color_NORMAL_Y_1->10]
[ADSS_color_NORMAL_Y_1->11]
[BDSS_runn_NORMAL_Y_1->12]
[EDSS_color_NORMAL_Y_1->13]
)
Run Code Online (Sandbox Code Playgroud)
我是Scala和Spark的新手,我尝试过做这样的事情.
var map: Map[String, Int] = Map()
var i = 0
dataframe.foreach( record =>{
//Is there a better way of creating a key!
val key = record(0) + record(1) + record(2) + record(3)
var index = i
map += (key -> index)
i+=1
}
)
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.:完成后,Map为null.
是否有一种智能,快速的方法从PCAP文件中获取所有IP地址?我只需要(目标地址,源地址)元组.
目前我正在使用Scapy的rdpcap
功能:
from scapy.all import *
pcap = rdpcap('file.pcap')
ips = set([(p[IP].fields['src'], p[IP].fields['dst']) for p in pcap if p.haslayer(IP) == 1])
Run Code Online (Sandbox Code Playgroud)
但是我的机器需要大约两分钟来解析一个70MB的PCAP文件,其中包含370个独特的提取条目......
有没有办法在 MongoDB / Python 中为批量更新插入提供提示?
我想在这样一个查询添加一个提示:Bulk.find(<query>).upsert().update(<update>)
。
我试过了:
Bulk.find(<query>).hint(<index>).upsert().update(<update>)
:.hint()
方法不存在。Bulk.find({'$query': <query>, '$hint': <hint>}).upsert().update(<update>)
:不能将{$query: <query>}
语法与方法链混合使用(例如,请参阅此和此)。我错过了什么吗?
为了与API保持一致,我必须返回一个迭代器,它只产生一个值,然后停止(它必须是返回的正确值.__iter__()
).到目前为止,我有:
return (myobject for _ in [0])
Run Code Online (Sandbox Code Playgroud)
是否有更好的(更"Pythonic")方式来做到这一点?
python ×2
scapy ×2
apache-spark ×1
dictionary ×1
mongodb ×1
optimization ×1
pcap ×1
pymongo ×1
python-3.x ×1
scala ×1