Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/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
Scala Spark—将多个版本的S3对象读入数据帧的高效方法_Scala_Apache Spark_Amazon S3_Apache Spark Sql - Fatal编程技术网

Scala Spark—将多个版本的S3对象读入数据帧的高效方法

Scala Spark—将多个版本的S3对象读入数据帧的高效方法,scala,apache-spark,amazon-s3,apache-spark-sql,Scala,Apache Spark,Amazon S3,Apache Spark Sql,我想读取S3对象的N个最新版本,并将它们全部放入Map[version,DataFrame]结构中。每个S3对象都是一个json行文件,每个文件大约有2GB。就我所见,S3A客户端不支持传递versionId,所以我不能使用这种方法。有人能提出一种有效的替代方法吗?我唯一能想到的就是创建普通的AmazonS3客户端,并使用SDK获取S3对象。但是,我对Spark/Scala不太有经验,也不知道如何将其转换为数据帧。如果每个版本都有一个目录,可以使用父目录并循环构造每个版本的路径,然后使用Spar

我想读取S3对象的N个最新版本,并将它们全部放入Map[version,DataFrame]结构中。每个S3对象都是一个json行文件,每个文件大约有2GB。就我所见,S3A客户端不支持传递versionId,所以我不能使用这种方法。有人能提出一种有效的替代方法吗?我唯一能想到的就是创建普通的AmazonS3客户端,并使用SDK获取S3对象。但是,我对Spark/Scala不太有经验,也不知道如何将其转换为数据帧。

如果每个版本都有一个目录,可以使用父目录并循环构造每个版本的路径,然后使用Spark.read.csv(“path”)将其作为数据帧读取。如果你使用EMR,你应该有访问权限S3@firas你说的目录是什么意思?S3对象版本控制功能只使用不同的版本将版本存储在同一个bucket/key下。我不知道在使用Sparkt读取S3 bucket时如何精确地确定版本这里不支持任何类似的东西…没有像Posix文件系统那样的东西,因此在使用的API或连接器中也不支持。即使在s3a级别添加了一些内容,但当普通RDD代码列出一个directory@TofigHasanov,有没有办法列出Spark中特定文件夹中同一对象的所有不同版本?如果每个版本都有一个目录,您可以使用父目录和循环来构造每个版本的路径,然后使用spark.read.csv(“path”)将其作为数据帧读取。如果你使用EMR,你应该有访问权限S3@firas你说的目录是什么意思?S3对象版本控制功能只使用不同的版本将版本存储在同一个bucket/key下。我不知道在使用Sparkt读取S3 bucket时如何精确地确定版本这里不支持任何类似的东西…没有像Posix文件系统那样的东西,因此在使用的API或连接器中也不支持。即使在s3a级别添加了一些内容,但当普通RDD代码列出一个directory@TofigHasanov,有没有办法列出Spark中特定文件夹中同一对象的所有不同版本?