我正在尝试压缩两个具有相同数量元素的rdd。但是,当调用zip时,我得到一个错误,即rdd中不包含相同数量的元素。特定错误是“每个分区中只能压缩具有相同数量元素的RDD”。
data = data.sortBy(lambda x: x[0]).zip(tod).map(lambda x: (x[0][0], x[0][1], x[0][4], x[0][5], x[0][6], x[1][1], x[1][2], x[1][3], x[1][4], x[1][5], x[1][6], x[0][7]))
bool_converted = data.map(lambda x: convertStringToFloat(x[0], x[4])).sortBy(lambda x: x[0])
然后我打电话
data = data.zip(bool_converted)
哪个会引发错误
ERROR Executor: Exception in task 1.0 in stage 22.0 (TID 86)
org.apache.spark.SparkException: Can only zip RDDs with same number of elements in each partition
但分区中的元素数相同:
print("data", data.count())
print("bool_converted", bool_converted.count())
哪个给:
('data', 1458644)
('bool_converted', 1458644)
我什至检查了分区数。两者都是8。
任何人都可以解释发生了什么事以及如何防止这种情况发生吗?