Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在spark scala中重命名S3文件而不是HDF_Scala_Amazon Web Services_Apache Spark_Amazon S3_Apache Zeppelin - Fatal编程技术网

如何在spark scala中重命名S3文件而不是HDF

如何在spark scala中重命名S3文件而不是HDF,scala,amazon-web-services,apache-spark,amazon-s3,apache-zeppelin,Scala,Amazon Web Services,Apache Spark,Amazon S3,Apache Zeppelin,我在S3中存储了大约一百万个文本文件。 我想根据文件夹名称重命名所有文件 在spark scala我怎么能做到 我正在寻找一些示例代码 我正在使用齐柏林飞艇运行我的spark脚本 下面的代码我已经按照答案中的建议进行了尝试 import org.apache.hadoop.fs._ val src = new Path("s3://trfsmallfffile/FinancialLineItem/MAIN") val dest = new Path("s3://trfsmallfffile/F

我在S3中存储了大约一百万个文本文件。 我想根据文件夹名称重命名所有文件

在spark scala我怎么能做到

我正在寻找一些示例代码

我正在使用齐柏林飞艇运行我的spark脚本

下面的代码我已经按照答案中的建议进行了尝试

import org.apache.hadoop.fs._

val src = new Path("s3://trfsmallfffile/FinancialLineItem/MAIN")
val dest = new Path("s3://trfsmallfffile/FinancialLineItem/MAIN/dest")
val conf = sc.hadoopConfiguration   // assuming sc = spark context
val fs = Path.getFileSystem(conf)
fs.rename(src, dest)
但在误差以下

<console>:110: error: value getFileSystem is not a member of object org.apache.hadoop.fs.Path
       val fs = Path.getFileSystem(conf)
:110:错误:value getFileSystem不是object org.apache.hadoop.fs.Path的成员
val fs=Path.getFileSystem(conf)

您可以使用普通的HDFS API,例如(键入,未测试)

S3A客户端伪造重命名的方式是对每个文件进行
copy+delete
,因此所需时间与文件数量和数据量成正比。S3限制了您的速度:如果您尝试并行执行此操作,它可能会降低您的速度。如果需要“一段时间”,不要感到惊讶


您还可以按每1000次通话收取0.005美元的费用,因此您需要花费约5美元才能尝试。在一个小目录上测试,直到您确定一切正常为止

您可以使用正常的HDFS API,例如(键入,未测试)

S3A客户端伪造重命名的方式是对每个文件进行
copy+delete
,因此所需时间与文件数量和数据量成正比。S3限制了您的速度:如果您尝试并行执行此操作,它可能会降低您的速度。如果需要“一段时间”,不要感到惊讶


您还可以按每1000次通话收取0.005美元的费用,因此您需要花费约5美元才能尝试。在一个小目录上进行测试,直到您确定一切正常为止

刚刚尝试过,但更新了错误我的问题请查看一下,确定,在我的代码中发现了一个错误。这就是说,如果您在这个级别上进行认真的工作,您将需要IDE中的整个Hadoop和Spark源代码树。请注意,并尽早开始练习。雷迪为此要求提出了两项赏金。我的同事也提出了一项积极赏金。。。我已经修复了我的代码,你应该使用'src.getFileSystem()`;这是一种非抽象的方法。正如我所警告的,不是打字,测试。是的,我投了赞成票。非常感谢。但还有一件事,我在src文件夹中有这么多文件,我想重命名并将其移动到其他文件夹中。我的cooleague为此创建了单独的问题。你能看一下这个问题吗…我们在这方面也有100分的悬赏。如果你能帮忙,那将是我刚刚被问到了,但是我的问题被更新了。请看一下。OK,在我的代码中发现了一个错误。这就是说,如果您在这个级别上进行认真的工作,您将需要IDE中的整个Hadoop和Spark源代码树。请注意,并尽早开始练习。雷迪为此要求提出了两项赏金。我的同事也提出了一项积极赏金。。。我已经修复了我的代码,你应该使用'src.getFileSystem()`;这是一种非抽象的方法。正如我所警告的,不是打字,测试。是的,我投了赞成票。非常感谢。但还有一件事,我在src文件夹中有这么多文件,我想重命名并将其移动到其他文件夹中。我的cooleague为此创建了单独的问题。你能看一下这个问题吗…我们在这方面也有100分的悬赏。如果你能帮忙,那将是伟大的
val src = new Path("s3a://bucket/data/src")
val dest = new Path("s3a://bucket/data/dest")
val conf = sc.hadoopConfiguration   // assuming sc = spark context
val fs = src.getFileSystem(conf)
fs.rename(src, dest)