2016-04-14 23 views
0

我有两个相同长度的Python数组。它们是通过读取两个单独的文本文件生成的。一个代表标签;让它被称为“labelArray”。另一个是数组数组;让它被称为“dataArray”。我想将它们变成LabeledPoint的RDD对象。我怎样才能做到这一点?RDD从标签阵列和数据数组在python/spark

+1

向我们展示每个数据数组的前几行然后我们可以帮助编写代码。 –

回答

2

我假设源代码dataArray和lableArray是代码中描述的列表。你可以尝试像下面创建一个合并RDD

>>> lableArray=['l1','l2','l3'] 
>>> dataArray=['d1','d2','d3'] 
>>> rdd2=sc.parallelize(lableArray) 
>>> rdd1=sc.parallelize(dataArray) 
>>> rdd1.collect() 
['d1', 'd2', 'd3'] 
>>> rdd2.collect() 
['l1', 'l2', 'l3'] 
>>> rdd=rdd2.zipWithIndex().map(lambda x:(x[1],x[0])).join(rdd1.zipWithIndex().map(lambda y:(y[1],y[0]))).map(lambda x:x[1]) 
>>> rdd.collect() 
[('l1', 'd1'), ('l2', 'd2'), ('l3', 'd3')] 

这里的“RDD”是通过结合两种dataArray的和lableArray创建

1

星火有一个功能takeSample可在合并两个RDD最终结果RDD