我正在执行一个连接,我有超过100个节点的数据。所以我有一个小的键/值列表,我正在与另一个键/值对连接。在
我的清单是这样的:
[[1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], [7, 0], [8, 0], [9, 0], [10, 0], [11, 0], [16, 0], [18, 0], [19, 0], [20, 0], [21, 0], [22, 0], [23, 0], [24, 0], [25, 0], [26, 0], [27, 0], [28, 0], [29, 0], [36, 0], [37, 0], [38, 0], [39, 0], [40, 0], [41, 0], [42, 0], [44, 0], [46, 0]]
我有广播变量:
^{pr2}$当我加入时:
numRDD = columnRDD.join(numB.value)
我得到以下错误:
AttributeError: 'list' object has no attribute 'map'
你能不能试着把numValuesKV做成字典,看看它能不能用。在
你正在广播一份名单,这是绝对可以的。在
你需要做的是
这里的t[0]应该看起来像[1,0]等等,但我希望你能理解。。。。在
rdd.join(other)
意味着连接两个RDD,因此它期望other
是一个RDD。要使用高效的“小表广播”连接技巧,您需要“手动”进行连接。在Scala中,它看起来像这样:这将使用广播值的连接以分布式方式应用到RDD的每个分区。在
PySpark代码应该非常相似。在
相关问题 更多 >
编程相关推荐