有没有一种简单的方法来使用Spark API (我使用PySpark API)和binaryFiles方法来读取目录中包含的给定文件集?
假设我有一个这样的文件夹:
/temp
a.bin
b.bin
...
y.bin
z.bin我想读取g.bin、j.bin、d.bin、z.bin、l.bin、a.bin、i.bin、h.bin (这些是随机名称,可以在每次请求时更改)。
我如何使用binaryFiles读取这些文件,而不将它们复制到另一个目录中,因为它们是大文件?
现在,我正在创建一个带有符号链接的文件夹,并使用binaryFiles('./*')来读取该文件夹中的所有链接。但我认为它不适合长期使用。
一些技巧:我正在研究regexp,这样我就可以向binaryFiles传递一个自定义字符串来选择适当的文件,但是解决方案可能在其他地方,而且非常欢迎帮助。
谢谢。
发布于 2015-08-03 21:09:31
对于单字母前缀,您可以简单地使用glob模式:
sc.binaryFiles('[gjdzlaih].bin')如果名称比较复杂,则可以更容易地提供逗号分隔的文件列表:
files = ['g.bin', 'j.bin', 'd.bin', 'z.bin', 'l.bin', 'a.bin', 'i.bin', 'h.bin']
sc.binaryFiles(','.join(files))https://stackoverflow.com/questions/31783512
复制相似问题