我看了一下星火对的支持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\指向具有多个文件的目录.
在计算压缩文件的情况下,是否也可以将每个文件打包在一个压缩文件下,并按照每个文件一个分区的相同模式?
我有一个包含多个文本文件的Zipped文件.我想读取每个文件并构建一个包含每个文件内容的RDD列表.
val test = sc.textFile("/Volumes/work/data/kaggle/dato/test/5.zip")
Run Code Online (Sandbox Code Playgroud)
将只是整个文件,但如何遍历zip的每个内容,然后使用Spark将其保存在RDD中.
我对Scala或Python很好.
Python中使用Spark的可能解决方案 -
archive = zipfile.ZipFile(archive_path, 'r')
file_paths = zipfile.ZipFile.namelist(archive)
for file_path in file_paths:
urls = file_path.split("/")
urlId = urls[-1].split('_')[0]
Run Code Online (Sandbox Code Playgroud)