Во-первых, нужно ли это вообще? теоретически мы можем сделать ... но какова необходимость делать это как требование. ты можешь написать
простая программа hdfs для поиска имени файла и индекса .. я имею ввиду spark rdd
больше не нужно отображать имена файлов. с индексом.
У меня есть файлы ниже.
Сейчас я делаю трансформацию, как показано ниже ...
import org.apache.log4j.{Level, Logger}
import org.apache.spark.internal.Logging
import org.apache.spark.sql.SparkSession
/** *
* @author : Ram Ghadiyaram
*/
object WholeTextFiles extends Logging {
Logger.getLogger("org").setLevel(Level.WARN)
def main(args: Array[String]): Unit = {
val appName = if (args.length > 0) args(0) else this.getClass.getName
val spark: SparkSession = SparkSession.builder
.config("spark.master", "local[*]") //.config("spark.eventLog.enabled", "true")
.appName(appName)
.getOrCreate()
// map transformation to form new rdd
val finalresult = spark.sparkContext.wholeTextFiles("C:\\Users\\Downloads\\codebase\\spark-general-examples\\userdata*.parquet")
.zipWithIndex().map {
case (x, index) => (index, x._1)
}
println(" print the small rdd this is your tranformed RDD ")
finalresult.sortByKey(true) foreach {
case (index,x ) => println(s"\n Index $index file name ${x} ")
}
println("done")
}
}
Результат:
print the small rdd this is your tranformed RDD
Index 0 file name file:/C:/Users/Downloads/codebase/spark-general-examples/userdata1.parquet
Index 3 file name file:/C:/Users/Downloads/codebase/spark-general-examples/userdata4.parquet
Index 1 file name file:/C:/Users/Downloads/codebase/spark-general-examples/userdata2.parquet
Index 4 file name file:/C:/Users/Downloads/codebase/spark-general-examples/userdata5.parquet
Index 2 file name file:/C:/Users/Downloads/codebase/spark-general-examples/userdata3.parquet
done