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

Spark上下文文本文件:加载多个文件

徐焱
2023-03-14
问题内容

我需要处理分散在各个目录中的多个文件。我想将所有这些加载到单个RDD中,然后在其上执行map /
reduce。我看到SparkContext能够使用通配符从单个目录加载多个文件。我不确定如何从多个文件夹加载文件。

以下代码段失败:

for fileEntry in files:
    fileName = basePath + "/" + fileEntry
    lines = sc.textFile(fileName)
    if retval == None:
        retval = lines
    else:
        retval = sc.union(retval, lines)

这在第三个循环中失败,并显示以下错误消息:

retval = sc.union(retval, lines)
TypeError: union() takes exactly 2 arguments (3 given)

鉴于我仅提供了两个参数,所以这很奇怪。任何指针表示赞赏。


问题答案:

措辞如何呢?

sc.union([sc.textFile(basepath + "/" + f) for f in files])

在Scala中,SparkContext.union()有两种变体,一种采用vararg参数,另一种采用列表。Python中仅存在第二个(因为Python不具有多态性)。

更新

您可以使用一个textFile调用来读取多个文件。

sc.textFile(','.join(files))


 类似资料:
  • 我需要从服务器下载一个文本文件,并将其保存在内存中。然后一行行地去读。更好的是直接从服务器逐行离读。 编辑:“将其保存在内存中”的意思是不将其写入文件。 你会怎么做? 谢谢!

  • 本文向大家介绍详解SpringBoot文件上传下载和多文件上传(图文),包括了详解SpringBoot文件上传下载和多文件上传(图文)的使用技巧和注意事项,需要的朋友参考一下 最近在学习SpringBoot,以下是最近学习整理的实现文件上传下载的Java代码: 1、开发环境: IDEA15+ Maven+JDK1.8 2、新建一个maven工程:   3、工程框架   4、pom.xml文件依赖项

  • 我们有一个客户机-服务器架构,使用Google Drive在客户机和服务器之间共享文件,而不需要实际发送它们。 客户机使用Google Drive API获取它希望与服务器共享的所有文件的文件ID列表。 服务器然后使用适当的授权令牌下载文件。 服务器响应时间对用户体验至关重要。

  • 问题内容: 首先,我对Java非常基础。我正在尝试浏览.txt文件并将其内容加载到文本区域。我已经完成了该部分,直到从JFileChooser接收文件为止,现在我不知道如何做其余的工作。 问题答案: 使用所有Swing文本组件都支持的read(…)和write(…)方法。简单的例子:

  • 用PySimpleGUI一次可以选择多个文件路径吗 只能选择一个文件 null 没有循环模式的多个文件的任何API?

  • 我正在尝试在一个请求中上传多个文件到Hapi JS服务器。到目前为止我还不成功。这里是原始请求(取自w3org,使过程尽可能简单)。 这是Hapi端的处理程序配置: 调试request.payload时,我只看到两个字段,“files”和“submit-name”,其中files字段包含--bbc04y边界之间的所有内容,即“--bbc04y\r\ncontent-disposition:file