我需要从 pyspark worker中读取/扫描/写入文件到 hdfs 。
请注意,以下 api 不适用,因为它们会脱离驱动程序:
sc.textFile()
sc.saveAsParquetFile()
ETC
最好不要涉及额外的第三方库(例如 pyhadoop)。
一种选择是掏出例如
os.system('hdfs dfs -ls %(hdfsPath)s' %locals())
但是有没有更原生的 pyspark 方法来实现这一点?
更新这不是广播数据的情况,因为每个工作人员将从 hdfs 读取不同的数据。其中一个用例是在每个工作人员中读取一些大型二进制文件(这显然不是广播的情况)。另一种情况是读取包含指令的“命令”文件。我已经在原生 hadoop 和 scala spark 中成功使用了这种模式。