Python PySpark:打印到while循环内部的终端
我开始自学Spark,所以我的问题可能真的很傻 无论如何,我正在研究Spark installation提供的一个示例(链接:) 我想修改一下代码,因为我需要更好地理解map reduce操作 我想做的是:Python PySpark:打印到while循环内部的终端,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我开始自学Spark,所以我的问题可能真的很傻 无论如何,我正在研究Spark installation提供的一个示例(链接:) 我想修改一下代码,因为我需要更好地理解map reduce操作 我想做的是: while tempDist > convergeDist: print('Here \n') closest = data.map( lambda p: (closestPoint(p, kPoints), (p, 1))) print(clo
while tempDist > convergeDist:
print('Here \n')
closest = data.map(
lambda p: (closestPoint(p, kPoints), (p, 1)))
print(closest)
pointStats = closest.reduceByKey(
lambda p1_c1, p2_c2: (p1_c1[0] + p2_c2[0], p1_c1[1] + p2_c2[1]))
print(pointStats)
newPoints = pointStats.map(
lambda st: (st[0], st[1][0] / st[1][1])).collect()
但是,在使用命令执行脚本时,实际上不会打印上述打印内容
spark-submit kmeans.py
而不是以后
print("Final centers: " + str(kPoints))
实际上是打印到终端的
有人能帮我理解为什么吗?
最近的
和点统计
,都是RDD,当你在RDD上打印语句时,你只能在RDD上看到类似于PythonRDD[36]的语句。除非您在rdd上发布操作
,否则不会打印其内容,如-
print(closest.collect())
语句print(“最终中心:“+str(kPoints))
之所以有效,是因为
使用操作生成kPoints
takeSample
-
kPoints = data.takeSample(False, K, 1)
希望这有帮助。请阅读有关RDD的操作和转换操作之间的差异的更多信息。最近的
和pointStats
,两者都是RDD,当您在RDD上打印语句时,您只能在PythonRDD的RDD处看到类似于PythonRDD[36]的语句。scala:48
打印在终端上。除非您在rdd上发布操作
,否则不会打印其内容,如-
print(closest.collect())
语句print(“最终中心:“+str(kPoints))
之所以有效,是因为
使用操作生成kPoints
takeSample
-
kPoints = data.takeSample(False, K, 1)
希望这有帮助。请阅读更多关于RDD的操作和转换操作之间的区别