在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
}
答案 0 :(得分:1)
我找到了解决方案。 Spark utils包含一种非常简单的序列化hadoop配置的方式:https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/util/SerializableConfiguration.scala