如何从Spark Executor获取或创建Hadoop客户端

时间:2018-06-09 17:20:41

标签: scala apache-spark hadoop apache-spark-sql hdfs

在Spark Dataframe上执行mapPartitions操作时,有没有办法从Spark Executor获取Hadoop文件系统? 如果没有,至少有没有办法获得Hadoop配置以生成新的Hadoop文件系统?

考虑到HDFS是kerberized。

用例类似于(伪代码):

spark.sql("SELECT * FROM cities").mapPartitions{ iter =>
    iter.groupedBy(some-variable).foreach{ rows =>
        hadoopFS.write(rows)
    }
    TaskContext.getPartitionId
}

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。 Spark utils包含一种非常简单的序列化hadoop配置的方式:https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/util/SerializableConfiguration.scala