我正在编写一个简单的pyspark脚本,将hdfs文件和文件夹从一个位置复制到另一个位置。我已经通过了许多在线可用的文档和答案,但我找不到一种方法来复制文件夹和文件使用pyspark或执行hdfs命令使用pyspark(特别是复制文件夹和文件)
下面是我的代码hadoop = sc._jvm.org.apache.hadoop
Path = hadoop.fs.Path
FileSystem = hadoop.fs.FileSystem
conf = hadoop.conf.Configuration()
fs = FileSystem.get(conf)
source = hadoop.fs.Path('/user/xxx/data')
destination = hadoop.fs.Path('/user/xxx/data1')
if (fs.exists(Path('/user/xxx/data'))):
for f in fs.listStatus(Path('/user/xxx/data')):
print('File path', str(f.getPath()))
**** how to use copy command here ?
Thanks in advance
为FileUtil类创建一个新的Java对象,并使用它的复制方法,而不是hdfs脚本命令
如何使用JAVA API在HDFS中移动或复制文件
最好使用distcp
而不是Spark,否则,如果您尝试在多个执行器中运行该代码,将会遇到竞争条件