在火花工作者中使用 hadoop 配置



我想直接从 Spark worker 从 Рadoop 读取一些数据:

所以,在 spark 程序中,我有一个 hadoop 配置: val configuration = session.sparkContext.hadoopConfiguration 但是我不能在工人身上使用它,因为它不是Serializable

spark.sparkContext.parallelize(paths).mapPartitions(paths => {
for (path <- paths) yield {
//for example, read the parquet footer
val footer = ParquetFileReader.readFooter(configuration, new Path(path), ParquetMetadataConverter.NO_FILTER)
footer.getFileMetaData.getSchema.getName
}
})

结果在

object not serializable (class: org.apache.hadoop.conf.Configuration...

我不知道将配置对象使用到mapPartition中的任何解决方案。 参考此解决方案,您必须手动将conf重写到mapPartition中。