我看了一下星火对的支持gzip的 -kind输入文件在这里,我不知道如果同样支持不同类型的压缩文件,如存在.ZIP文件.到目前为止,我已经尝试计算压缩在zip文件下的文件,但Spark似乎无法成功读取其内容.
我已经采取了外观的Hadoop的newAPIHadoopFile和newAPIHadoopRDD,但到目前为止,我还没有能够得到任何工作.
此外,Spark支持为指定文件夹下的每个文件创建分区,如下例所示:
SparkConf SpkCnf = new SparkConf().setAppName("SparkApp")
.setMaster("local[4]");
JavaSparkContext Ctx = new JavaSparkContext(SpkCnf);
JavaRDD<String> FirstRDD = Ctx.textFile("C:\input\).cache();
Run Code Online (Sandbox Code Playgroud)
where C:\input\指向具有多个文件的目录.
在计算压缩文件的情况下,是否也可以将每个文件打包在一个压缩文件下,并按照每个文件一个分区的相同模式?
我正在尝试从 s3 解压缩文件(.zip),
我尝试了以下方法
config_dict = {"fs.s3n.awsAccessKeyId":AWS_KEY,
"fs.s3n.awsSecretAccessKey":AWS_SECRET}
print filename
rdd = sc.hadoopFile(filename,
'org.apache.hadoop.mapred.TextInputFormat',
'org.apache.hadoop.io.Text',
'org.apache.hadoop.io.LongWritable',
conf=config_dict)
Run Code Online (Sandbox Code Playgroud)
这导致异常
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.hadoopFile.
: java.io.IOException: No FileSystem for scheme: s3n
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
at org.apache...
Run Code Online (Sandbox Code Playgroud)
我也试过使用Boto连接
aws_connection = S3Connection(AWS_KEY, AWS_SECRET)
bucket = aws_connection.get_bucket('myBucket')
Run Code Online (Sandbox Code Playgroud)
并使用 GZIP 解压缩:
ip = gzip.GzipFile(fileobj=(StringIO(key.get_contents_as_string())))
myrdd = sc.textfile(ip.read())
Run Code Online (Sandbox Code Playgroud)
这没有给我想要的结果。
如果我将相同的 zip 文件从本地机器提供给我的 spark 程序,如下所示,内容将被正确读取
myrdd = sc.textfile(<my zipped file>)
Run Code Online (Sandbox Code Playgroud)
有人能给我一个关于如何将压缩文件从 s3 读取到 spark …
我有一个.gz格式的压缩文件,是否可以使用spark DF / DS直接读取文件?
详细信息:文件是带有制表符分隔的csv。
gzip apache-spark apache-spark-sql spark-dataframe apache-spark-dataset