我试图在格式的数据上调用pyspark的reduceByKey函数 (([a,b,c], 1), ([a,b,c], 1), ([a,d,b,e], 1), ...
似乎pyspark不接受数组作为普通键中的键,通过简单地应用.reduceByKey(add)来降低值.
我已经尝试过首先将数组转换为字符串,.map((x,y): (str(x),y))但这不起作用,因为将字符串后处理回数组太慢了.
有没有办法让pyspark使用数组作为键或使用另一个函数快速将字符串转换回数组?
这是相关的错误代码
File "/home/jan/Documents/spark-1.4.0/python/lib/pyspark.zip/pyspark/shuffle.py", line 268, in mergeValues
d[k] = comb(d[k], v) if k in d else creator(v)
TypeError: unhashable type: 'list'
enter code here
Run Code Online (Sandbox Code Playgroud)
摘要:
输入:x =[([a,b,c], 1), ([a,b,c], 1), ([a,d,b,e], 1), ...]
所需的输出:y =[([a,b,c], 2), ([a,d,b,e], 1),...]
使得我可以访问a由y[0][0][0]和2由y[0][1]
我正在使用此代码示例
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
data = np.array([
[0,1,0,2,0],
[0,3,0,2,0],
[6,1,1,7,0],
[0,5,0,2,9],
[0,1,0,4,0],
[9,1,3,4,2],
[0,0,2,1,3],
])
column_names = ['a','b','c','d','e']
row_names = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']
fig = plt.figure()
ax = Axes3D(fig)
lx= len(data[0]) # Work out matrix dimensions
ly= len(data[:,0])
xpos = np.arange(0,lx,1) # Set up a mesh of positions
ypos = np.arange(0,ly,1)
xpos, ypos = np.meshgrid(xpos+0.25, ypos+0.25)
xpos = xpos.flatten() # Convert positions to 1D array
ypos = ypos.flatten()
zpos = np.zeros(lx*ly)
dx = …Run Code Online (Sandbox Code Playgroud) 我使用 networkx 构建了一个图表,并使用 spring 布局函数生成了一个漂亮的图,不幸的是,这没有传输到 gexf 文件
我认为networkx工具的重点是能够编写可读的图形文件,所以如果python中有一个简单的解决方案,我会犹豫是否手动更改xml
这是我想要的格式的链接,因为最终目标是使用 sigma js 工具将其放入网页中
https://github.com/jacomyal/sigmajs.org/blob/master/assets/data/les-miserables.gexf
或更具体地说,这种格式: http://gexf.net/format/viz.html
这是 gephi 示例中使用《悲惨世界》字符的示例,是否有一种方法可以简单地使用命令nx.write_gexf(G, ""),同时还专门编写属性,可以以相同的格式输出它?