我的RDD看起来像这样:
[Row(label=1,data='asd'),
Row(label=2,data='asd'),
Row(label=1,data='asd'),
Row(label=3,data='asd'),
Row(label=4,data='asd'),
Row(label=3,data='asd'),
....
]
我对每个标签的样本数量不是很均匀,我希望将每个标签的固定数量放入RDD中。那可能吗?
如果每个都是一个列表,它在python中会是这样的:
agg = []
number_from_each = 5
for label in data:
[agg.append(x) for x in data[label][:number_from_each]]
由于
答案 0 :(得分:0)
您有多少种不同的标签?你知道他们所有人吗? 你想要的确是5(并冒着考虑我认为很长的整个列表的风险吗?
Row
列表名为data
Row
个对象可以通过Row.label
labels
一个想法是使用字典来记录你已经拥有的东西。
labels = [1, 2, 3, 4]
agg = []
dic = {}
for l in labels: # Initialize the dictionary
dic[l] = 0
for row in data:
if dic[row.label] < 5:
dic[row.label] += 1
agg.append(row)