火花地图功能

时间:2016-10-17 21:07:34

标签: python apache-spark pyspark

我正在测试Spark的地图和平面地图功能。我基本上需要稍后使用Flatmap将Spark Dataframe的行转换为不同的格式。

我创建了一个虚拟数据框,如下所示:

Test code to check Flatmap
In [16]:

d={"a":[1,2,3],"b":[1.1,2.3,32],"c":[0,1,1]}
df=pd.DataFrame(d)
​
sdf=sqlContext.createDataFrame(df) 
sdf.show(5)
+---+----+---+
|  a|   b|  c|
+---+----+---+
|  1| 1.1|  0|
|  2| 2.3|  1|
|  3|32.0|  1|
+---+----+---+

然后我编写了以下函数来对Spark的每个Row对象进行一些计算。我想打印并检查每一步发生的事情。

In [24]:

#print [x.asDict() for x in tmp]
def ex_map(x):
    print x
    y = x.asDict()
    print y
    sum_k = sum([y[k] for k in y.keys()] )

    return (k,sum_k)
​
print sdf.map(ex_map).take(4)
​
[('b', 2.1), ('b', 5.3), ('b', 36.0)]

就像我想要打印传递给map函数的第一个Row对象一样。

然后我想打印这个行对象的字典。

然而,最终结果我没有看到这两个打印命令结果。

出了什么问题?

0 个答案:

没有答案