当前位置: 首页 > 面试题库 >

在Python Spark中查看RDD内容?

松英叡
2023-03-14
问题内容

在pyspark中运行一个简单的应用程序。

f = sc.textFile("README.md")
wc = f.flatMap(lambda x: x.split(' ')).map(lambda x: (x, 1)).reduceByKey(add)

我想使用foreach动作查看RDD内容:

wc.foreach(print)

这将引发语法错误:

SyntaxError: invalid syntax

我想念什么?


问题答案:

发生此错误是因为print不是Python 2.6中的函数。

您可以定义执行打印的辅助UDF,也可以使用future库将其print视为函数:

>>> from operator import add
>>> f = sc.textFile("README.md")
>>> def g(x):
...     print x
...
>>> wc.foreach(g)

要么

>>> from __future__ import print_function
>>> wc.foreach(print)

但是,我认为最好将collect()RDD内容带回驱动程序,因为foreach它在工作程序节点上执行,并且输出不一定会出现在驱动程序/
shell中(它可能会在local模式下出现,但在运行时不会出现)集群)。

>>> for x in wc.collect():
...     print x


 类似资料:
  • used_memory:859192数据结构的空间 used_memory_rss:7634944实占空间 mem_fragmentation_ratio:8.89前2者的比例,1.N为佳,如果此值过大,说明redis的内存的碎片化严重,可以导出再导入一次.

  • 我有两个RDD: RDD1=(单词,分数)#单词:字符串|分数:int 因此,对于RDD2中的每个“id”,我想计算文本中每个单词的平均分数,如果它有分数的话 我收到了这个错误信息 异常:似乎您正试图广播RDD或从操作或转换引用RDD。RDD转换和操作只能由驱动程序调用,不能在其他转换内部调用;例如,rdd1.map(lambda x:rdd2.values.count()*x)无效,因为值转换和

  • 我一直在使用Android Studio开发我的应用程序,因为它是发布的。 所有的工作都很好直到最近,我不得不调试和检查数据库文件一起。由于我不知道如何直接看到数据库,所以当我调试生成数据库文件时,我不得不将数据库文件从我的手机导出到PC上。 为此,我必须打开。一旦我打开DDMS,我必须重新连接USB,并且我失去了我的调试线程。检查完数据库文件后,我必须关闭DDMS并再次重新连接USB以回到调试模

  • script/下的memstat.sh或者ps_mem.py都可以查看系统的内存情况,两个工具都需要root权限。

  • 前面小节介绍了文件和目录相关的操作,本小节介绍如何使用 file、cat、more、tail 命令在不同场景下去查看文件相关信息和内容。 1. file 查看文件类型 file 命令可以用来查看文件类型,还能查看文件的编码格式,下面列举一些 file 命令的参数: file 命令参数名称 功能与作用描述 -b 表示 --brief,显示查看结果时,不显示文件名 -c 表示 --checking-p

  • 问题内容: 我设法在正在开发的Java应用程序中获得内存“泄漏”。运行我的JUnit测试套件时,我会随机退出内存异常(java.lang.OutOfMemoryError)。 我可以使用哪些工具来检查我的Java应用程序的堆,以查看所有堆中正在使用的工具,以便可以确定哪些保留了对应该能够进行垃圾收集的对象的引用。 问题答案: VisualVM包含在Java的最新版本中。您可以使用它来创建堆转储,并