Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/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
Batch file apachespark:文件的批处理_Batch File_Hadoop_Apache Spark_Hdfs - Fatal编程技术网

Batch file apachespark:文件的批处理

Batch file apachespark:文件的批处理,batch-file,hadoop,apache-spark,hdfs,Batch File,Hadoop,Apache Spark,Hdfs,我在HDFS上设置了目录和子目录,我想在将所有文件一次加载到内存之前对它们进行预处理。我基本上有大文件(1MB),一旦处理后,这些文件将更像1KB,然后执行sc.wholeTextFiles开始我的分析 如何循环我的目录/子目录中的每个文件(*.xml),执行一个操作(为了示例起见,保留第一行),然后将结果转储回HDFS(新文件,例如.xmlr)?我建议您只使用sc.wholeTextFiles并使用转换对其进行预处理,之后,将它们全部保存回单个压缩序列文件(您可以参考我的指南:) 另一个选项可

我在HDFS上设置了目录和子目录,我想在将所有文件一次加载到内存之前对它们进行预处理。我基本上有大文件(
1MB
),一旦处理后,这些文件将更像
1KB
,然后执行
sc.wholeTextFiles
开始我的分析


如何循环我的目录/子目录中的每个文件(
*.xml
),执行一个操作(为了示例起见,保留第一行),然后将结果转储回HDFS(新文件,例如
.xmlr
)?

我建议您只使用sc.wholeTextFiles并使用转换对其进行预处理,之后,将它们全部保存回单个压缩序列文件(您可以参考我的指南:)

另一个选项可能是编写一个mapreduce,一次处理整个文件,并将它们保存到序列文件中,正如我之前建议的那样:。这是《Hadoop:权威指南》一书中描述的示例,请看一看

在这两种情况下,您将执行几乎相同的操作,Spark和Hadoop都将启动单个进程(Spark task或Hadoop mapper)来处理这些文件,因此通常这两种方法都将使用相同的逻辑工作。我建议您从Spark一开始,因为考虑到您已经有了一个带有Spark的集群,实现起来更简单